Fra*_*ank 24 c++ templates naming-conventions
传统上,模板类型的名称只是一个大写字母:
template<class A, class B, class C>
class Foo {};
Run Code Online (Sandbox Code Playgroud)
但我犹豫不决,因为它是非描述性的,因此难以阅读.所以,这样的事情会不会更好:
template<class AtomT, class BioT, class ChemT>
class Foo {};
Run Code Online (Sandbox Code Playgroud)
我也倾向于认为以下不是一个坏主意:
template<class ATOM, class BIO, class CHEM>
class Foo {};
Run Code Online (Sandbox Code Playgroud)
它使它们脱颖而出(而且,它又是大写字母).你怎么看?
Jar*_*Par 32
对于C++模板,我有几种模式
如果只有一个模板参数,我将其命名为T(或嵌套模板的U,V).
如果有多个参数并且使用不是很明显,那么我使用前缀为T的描述性名称.例如,TKey,TValue,TIdentifiier等......这使得参数在整个模板使用过程中都很容易被发现.
我会避免全部大写版本.大多数人使用C/C++中的所有大写标识符来表示宏定义.为模板参数重复该模式可能会使人们感到困惑.
我使用约定TName作为模板参数,使用NameT作为存储模板参数.
template <typename TFirst, typename TSecond>
class Templated
{
typedef TFirst FirstT;
typedef TSecond SecondT;
}
typedef Templated<int, std::string> MyTemplated;
...
const MyTemplated::FirstT size;
Run Code Online (Sandbox Code Playgroud)