检测 constexpr 函数的执行时间
detecting execution time of a constexpr function
假设我有这段代码:
#include <iostream>
constexpr int myDumbFunction(int a, bool b);
int main(int argc, char **argv) {
constexpr auto foo = 0;
const auto bar = 0;
//! compile-time execution:
std::cout << myDumbFunction(foo, true);
//! runtime execution:
std::cout << myDumbFunction(bar, true);
return 0;
}
constexpr int myDumbFunction(int a, bool b) {
if(a > 100 and b) {
return a - 100;
}
else if(a < 100 and b) {
return a + 100;
}
return 122;
}
有没有办法检测第一个myDumbFunction()
函数调用是否会在编译时被调用?
在这个特定的例子中,这很明显,但假设我不知道我正在传递的对象的所有细节。
另一个constexpr
相关的问题:是否有某种断言不会改变编译时执行?
std::cout << std::integral_constant<int, myDumbFunction(foo, true)>::value;
仅当在编译时计算myDumbFunction
时才有效。
相关文章:
- OpenCV 函数 cv::remap() 的执行时间更长,当程序在两者之间进入睡眠状态时
- 优化了第 n 个质数执行时间的 c++ 函数
- 我看到将我的类成员函数指定为内联实际上会增加执行时间,即使函数体非常小
- 我可以在编译时间执行该函数从未调用
- 使用 c++ 中函数的执行时间绘制图形
- C++计算多个函数的执行时间
- 出乎意料的差执行时间,用于字符串串联函数
- 测量C 中函数调用的执行时间
- 线程:如何在C或C++中精确计算算法的执行时间(函数的持续时间)
- 函数执行时间
- 短函数c++的执行时间
- 如何在C/C++中获取函数的执行时间
- 检测 constexpr 函数的执行时间
- opencv 调整函数大小执行时间慢
- 制作一个计时器,在以毫秒为单位的一定时间后执行某个函数
- C++函数的执行时间矛盾
- 如何在c++中计算函数的执行时间和cpu消耗
- 基本函数的典型执行时间
- 使用time()函数计算执行时间
- 如何在freeRTOS中使用vApplicationTickHook()函数来测量任务执行时间