*與 'M' 或 'M_'
可疑前綴的成員變量。
*類前綴(一般項目的具體,即Qt的所有類名與 'Q' 爲前綴)
可怕。 需要練習回來。
Big three並不是一個真正的標準,並且作爲Big Two的一個很好的實踐已經被超越了(因爲使用RAII作爲指針否定了析構函數的必要性,即使您需要Copy ctr和assignment也是如此)。
無論如何...
你需要區分你的模板參數和普通的代碼。因此,您應該使用您在模板參數的標準代碼中未使用的命名約定。一個很好的方法是使用CamelCase模板參數。另一個重要的方面是,由於C++根本不強制實現概念,所以要根據他們期望的概念命名參數。 ForwardIter
因此爲參數提供了一個好的參數名稱,而不是一個前向迭代器。
當然,如果您已經使用CamelCase作爲您的類名(Java程序員 - blech:p),那麼您應該使用別的東西。
當你進入複雜的實例化等等,那麼你需要使用一些方法來在多行中聲明你的模板實例。當元編程時,您還經常需要將事物分成多行和/或多個類型/模板。這是學習你的東西之一。我喜歡以下方法:
template < typename MyParams >
struct my_metafunction
: mpl::if_
<
check // probably wouldn't actually split this one since it's trivial...but as example...
<
MyParams
>
, some_type_expression
, some_other_type_expression
>
{};
您是否閱讀過Herb Sutter和Andrei Alexandrescu編寫的* C++編碼標準:101規則,指南和最佳實踐*正如你可能用Andrei作爲共同作者猜測的那樣,它至少在極少數情況下提到模板一次...... :-) –
我還沒有讀過,聽起來很有趣。爲什麼你的評論不是一個答案,順便說一句?僅僅因爲這不是你的原創作品? –