gpt4 book ai didi

c++ - 模板类型名称的名称大小写

转载 作者:太空宇宙 更新时间:2023-11-04 15:10:03 24 4
gpt4 key购买 nike

给定一个 C++ 模板类(或函数)定义:

template<typename T>
struct Foo {
T member;
};

-- 如果在更复杂的情况下我想让类型名称更具表现力,接受或回避什么情况下的命名约定(以及为什么)。示例:

template<typename MORE_EXPRESSIVE_NAME>
struct More {
MORE_EXPRESSIVE_NAME* p_;
More(MORE_EXPRESSIVE_NAME* p);
...
};

template<typename MORE_EXPRESSIVE_NAME>
More<MORE_EXPRESSIVE_NAME>::More(MORE_EXPRESSIVE_NAME* p)
: p_(p)
{ }

template<typename MoreExpressiveName>
struct More {
MoreExpressiveName* p_;
More(MoreExpressiveName* p);
...
};

template<typename MoreExpressiveName>
More<MORE_EXPRESSIVE_NAME>::More(MoreExpressiveName* p)
: p_(p)
{ }

template<typename mr_exprs_nm>
struct More {
mr_exprs_nm* p_;
More(mr_exprs_nm* p);
...
};

template<typename mr_exprs_nm>
More<mr_exprs_nm>::More(mr_exprs_nm* p)
: p_(p)
{ }

最佳答案

命名约定的主要内容是一致性。无论您采用什么约定,请在整个项目中保持它,因此,如果您跳入一个已经采用的项目,请坚持使用(如果没有,请重命名)。

也就是说,在我见过的大多数命名约定中,ALL 大写通常是为宏保留的,所以我肯定会避免使用它。

为了保持一致性,我自己更喜欢命名模板参数,就像我命名类型或常量(取决于参数的种类)一样。在这种情况下,假设您使用 More,我也会使用驼峰式大小写。

至于你输入的内容,要看:

  • 对于小函数,我通常使用概念名称,可能缩写为:FwdIt 例如,ForwardIterator,以提醒该类型应该实现什么
  • 对于较大的类/函数,如果可能,我使用概念或有意义的名称(取决于业务)

关于c++ - 模板类型名称的名称大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3786744/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com