Constexpr 函数与常量:何时使用 Which
当遇到始终返回相同值的函数时,例如“return 5, “人们可能想知道为什么 C 11 中存在这样的功能以及它是否应该取代声明常量
常量与 Constexpr 函数
考虑以下处理常量值的示例:
#define MEANING_OF_LIFE 42 const int MeaningOfLife = 42; constexpr int MeaningOfLife() { return 42; }
传统上,人们只需声明一个常数值。但是,constexpr 函数具有某些优势。
Constexpr 函数何时有用
当返回值需要更复杂的计算时,Constexpr 函数很有价值,例如:
constexpr int MeaningOfLife(int a, int b) { return a * b; } const int meaningOfLife = MeaningOfLife(6, 7);
这允许更多可读的代码,同时仍然有利于编译时评估。
编译时计算
Constexpr 函数启用常量的显式编译时计算,如下所示:
template<typename Type> constexpr Type max(Type a, Type b) { return a < b ? b : a; }
这允许用于有效处理常量值。
增加可读性
对于 DegreesToRadians 这样的函数,使用 constexpr 函数可以增强可读性,让编译时计算值变得更加清晰:
const float oneeighty = DegreesToRadians(180.0f);
结论
虽然声明常量仍然是一种有价值的实践,但 constexpr 函数在以下情况下具有优势:使用更复杂或可读的常量值。它们有助于编译时评估并增强代码的可维护性。有关这些主题的更多信息,请参阅 http://en.cppreference.com/w/cpp/language/constexpr。
以上是Constexpr 函数或常量:什么时候应该使用哪个?的详细内容。更多信息请关注PHP中文网其他相关文章!