constexpr相关内容

如何初始化 constexpr 引用

我试图初始化一个 constexpr 引用,但没有成功.我试过了 #include constexpr int&f(int& x)//可以定义返回 constexpr 引用的函数{返回 x;}int main(){constexpr int x{20};constexpr const int&z = x;//此处出错} 但我收到编译时错误 错误:constexpr 变量 'z' 必须由常 ..
发布时间:2022-01-05 11:40:45 C/C++开发

constexpr 未在 VC2013 中编译

此 constexpr 代码未在 Visual Studio 2013 版本 12.0.21005.1 REL 中编译 是否有更新的 Visual Studio 编译器可以与 constexpr 配合使用? #include constexpr int factorial(int n){返回 n 编译输出: 1>------ 构建开始:项目:Project1,配置:调试 Win32 ..
发布时间:2021-12-31 13:28:51 C/C++开发

lambda 函数/表达式是否支持 constexpr?

struct 测试{static const int value = []() ->int { 返回 0;}();}; 使用 gcc-4.6 我得到类似错误:函数需要是 constexpr.我尝试了将 constexpr 放在不同地方的多种组合,但没有运气. constexpr 是否也支持 lambda 函数(无论是否指定了 return 类型)?什么是正确的语法? 任何可能的解决方 ..
发布时间:2021-12-23 21:48:05 C/C++开发

投入 constexpr 函数

以下代码在 clang++ 3.7.0 下编译,但被 g++ 5.3.1 拒绝.两者都有 -std=c++14 选项.哪个编译器是正确的?任何人都知道标准中的哪里谈论这个?谢谢. #include 使用命名空间标准;constexpr int f(int n) {if (n 输出 [隐藏] g++ -std=c++14 c.cppc.cpp:在函数‘constexpr int f(int) ..
发布时间:2021-12-18 23:26:03 C/C++开发

constexpr 使用静态函数初始化静态成员

要求 我想要一个从 constexpr 函数计算的 constexpr 值(即编译时常量).而且我希望这两个范围都在类的命名空间内,即静态方法和类的静态成员. 第一次尝试 我首先用(对我来说)显而易见的方式写了这个: class C1 {constexpr 静态 int foo(int x) { 返回 x + 1;}constexpr 静态 int bar = foo(size ..
发布时间:2021-12-18 23:03:24 C/C++开发

变量上的 const 与 constexpr

以下定义有区别吗? const double PI = 3.141592653589793;constexpr 双 PI = 3.141592653589793; 如果不是,那么在 C++11 中更喜欢哪种风格? 解决方案 我相信是有区别的.让我们重命名它们,以便我们可以更轻松地讨论它们: const double PI1 = 3.141592653589793;constexpr ..
发布时间:2021-12-13 20:43:37 C/C++开发

在编译时使用 Constexpr 填充数组

我想使用 constexpr 填充枚举数组.数组的内容遵循一定的模式. 我有一个将 ASCII 字符集分为四类的枚举. 枚举类型{字母,数字,象征,其他,};constexpr 类型表 [128] =/* 等等等等 */; 我想要一个包含 128 个 Type 的数组.它们可以在一个结构中.数组的索引将对应于 ASCII 字符,值将是每个字符的 Type. 所以我可以查询这个数组来 ..
发布时间:2021-12-13 18:49:19 C/C++开发

C++11:数组的编译时间计算

假设我有一些 constexpr 函数 f: constexpr int f(int x) { ... } 而且我在编译时知道一些 const int N: 要么 #define N ...; 或 const int N = ...; 根据您的回答的需要. 我想要一个 int 数组 X: int X[N] = { f(0), f(1), f(2), ..., f(N-1) ..
发布时间:2021-12-13 18:44:34 C/C++开发

用 SFINAE 检测 constexpr

我正在升级一些 C++ 代码以利用 C++11 中的新功能.我有一个 trait 类,其中有几个函数返回基本类型,这些函数在大多数情况下(但并非总是)返回一个常量表达式.我想根据函数是否为 constexpr 来做不同的事情.我想出了以下方法: template结构测试{模板静态 std::true_type do_call(int){ return std::true_type();}静态 s ..
发布时间:2021-12-13 18:35:30 C/C++开发

Constexpr 指针值

我试图声明一个 constexpr 指针初始化为某个常量整数值,但 clang 挫败了我的所有尝试: 尝试 1: constexpr int* x = reinterpret_cast(0xFF);test.cpp:1:20: 注意:常量表达式中不允许 reinterpret_cast 尝试 2: constexpr int* x = (int*)0xFF;test.cpp:1:20: ..
发布时间:2021-12-13 13:16:45 C/C++开发

对静态 constexpr char[] 的未定义引用

我想在我的班级中有一个 static const char 数组.GCC 抱怨并告诉我应该使用 constexpr,尽管现在它告诉我这是一个未定义的引用.如果我将数组设为非成员,则它会编译.这是怎么回事? //.hpp结构 foo {空栏();静态 constexpr char baz[] = "quz";};//.cppvoid foo::bar() {std::string str(baz) ..
发布时间:2021-12-12 14:20:01 C/C++开发