C++ 对程序的编译时属性进行基准测试

C++ 对程序的编译时属性进行基准测试,c++,templates,gcc,clang,constexpr,C++,Templates,Gcc,Clang,Constexpr,计算编译程序所需的-fconstexpr steps=和-ftemplate depth=参数的精确最小值的最佳方法是什么 我现在做的是一个值的二等分。但对于现实世界中加载模板的程序来说,它的运行时间非常长,甚至在一个值的上限上是对数的 有-v选项和-ftime报告,但即使它们的输出也没有提供任何关于实际使用的最大模板深度和在计算常量表达式期间实际通过的步骤数的所需信息。您可以了解它的基准测试是如何进行的。它的基准代码主要以的形式编写。模板用于生成C++文件,然后在收集编译和执行统计信息的同时编

计算编译程序所需的
-fconstexpr steps=
-ftemplate depth=
参数的精确最小值的最佳方法是什么

我现在做的是一个值的二等分。但对于现实世界中加载模板的程序来说,它的运行时间非常长,甚至在一个值的上限上是对数的

-v
选项和
-ftime报告
,但即使它们的输出也没有提供任何关于实际使用的最大模板深度和在计算常量表达式期间实际通过的步骤数的所需信息。

您可以了解它的基准测试是如何进行的。它的基准代码主要以的形式编写。模板用于生成C++文件,然后在收集编译和执行统计信息的同时编译。 通过对分来查找
-ftemplate depth
-fconstexpr steps
的必要值当然有点麻烦,但是您也可以编写一个脚本(Ruby、Python,任何可以让您的船漂浮的东西)来实现自动化。只需在一个简单的
while
循环中将初始值加倍,直到程序成功编译