为了constexpr
在编译时强制对函数求值,我应该能够将它的返回值赋给一个constexpr
变量。
constexpr bool const_d_ref(const double& v) { return false; }
int main() {
constexpr double dd = 0.0;
constexpr bool cb = const_d_ref(dd);
}
Run Code Online (Sandbox Code Playgroud)
这似乎适用于g++
和clang++
。
为了对constexpr
消费者隐藏,我将实际的函数定义移到 中namespace detail
,创建一个新函数,该函数将返回值分配给一个constexpr
变量并返回它。
namespace detail {
constexpr bool const_d_ref(const double& v) { return false; }
}
constexpr bool const_d_ref(const double& v) {
constexpr bool b = detail::const_d_ref(v);
return b;
}
int main() {
constexpr double dd = 0.0;
bool b = …
Run Code Online (Sandbox Code Playgroud)