C ++模板:处理长类名

时间:2018-03-11 11:51:47

标签: c++ c++11

如果几乎​​每个人都禁止使用CPP项目中的头文件,并且必须在头文件中声明模板,除非采取特定步骤专门列出将在cpp文件中接受的类,

以下标题模板声明应呈现的可读方式是什么:

setTitle()

2 个答案:

答案 0 :(得分:2)

别误会,唯一被禁止的陈述是using namespace <...>

声明using <alias> = <type>以及typedef <type> <alias>仍然有效且广泛使用。

答案 1 :(得分:0)

  

以下标头模板声明的方式是什么   应该是可读的:

  • 使用空格格式化代码以提高可读性。
  • 使用尾随返回类型使函数名称脱颖而出。
  • 使用简洁,有意义的标识符。
  • 提供高级抽象(有时只是一个typedef)。

有关详细说明,请参阅Kevlin Henney's talk

namespace Some {

template<class A>
auto unreadable(LongName<...> input1,
                ... input2,
                ... omg)
 -> LongName<LongName2, LongName3>
{
    Some<LongName<...>>();
    etc.
}

} // namespace Some