鉴于我想改进我的 C++ 代码库。第一步是将函数标记为constexpr满足所用 C++ 标准的要求。有没有办法判断一个函数是否可以被标记constexpr?
我想出的唯一方法是添加constexpr到单个实例,运行编译器,并检查它是否抱怨它不是constexpr。重复直到检查完所有实例。这种方法无法扩展。
在 C++23 中,constexpr 函数恰好有两个要求:
如果您的代码库中的每个函数都满足这一点,我不会感到惊讶。
因此您可以标记每个模板化函数和内联函数constexpr。因为constexpr函数是隐式的inline,所以不能对extern函数执行此操作。
这应该意味着头文件中的每个函数定义都可以是constexpr.
(如果您的 constexpr 函数出现编译器错误,且永远无法生成常量表达式,请升级您的编译器)
| 归档时间: |
|
| 查看次数: |
174 次 |
| 最近记录: |