不同C ++功能的编译时间

oli*_*ora -1 c++ templates compilation compiler-optimization constexpr

不同的C ++功能的编译时间是多少?我有兴趣选择正确的方法来在我的库头文件中实现一些通用代码,并且我想花一些时间为图书馆用户考虑。粗略和/或相对的数字就可以了。

我对以下情况特别感兴趣:

  • 增加班级专长
  • 添加constexpr函数(仅声明)
  • 添加最简单的constexpr函数(如{ return true; }
  • 在编译时执行最简单的constexpr函数。
  • 实例化类模板
  • 实例化模板别名
  • 实例化变量模板
  • 找到正确的模板类专业化
  • 通过ADL找到合适的功能

PS:请不要谈论我过早的优化。无论如何,有关编译时间的信息将对C ++开发人员很有趣。

更新:阐明了我正在优化的代码在库头文件中,因此其编译时间对于库用户而言绝对重要。

更新:改写该问题以免引起别人的疑问。

Max*_*kin 5

是否有关于不同C ++功能的编译时间的好资料?

此信息的原始来源是-ftime-report-ftime-trace编译器选项。您可以使用它们来调查您感兴趣的时间。

有关更多详细信息请参见调查编译时间,以及Clang -ftime-reporttime-trace:Clang的时间线/火焰图分析器