小编Ram*_*m-Z的帖子

使用 clang 强制对 constexpr 进行编译时评估

为了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)

c++ g++ constexpr clang++ c++14

2
推荐指数
1
解决办法
1539
查看次数

标签 统计

c++ ×1

c++14 ×1

clang++ ×1

constexpr ×1

g++ ×1