constexpr是C ++ 11中引入的修饰符,它通知编译器函数或变量的值是已知的,或者可以在编译时计算。因此,它可以在不可能的地方用作常数。
为什么我的constexpr对象不是我的函数内部的constexpr?
我写了一个可以在编译时初始化和复制的类,并且使用我函数外部的对象在编译时也可以工作。现在,我想将我的constexpr对象传递给函数以执行一些操作...
可以在switch语句中使用任意大小的constexpr数组吗?
是否可以在switch语句中使用大小可变的constexpr数组,以使每个arr [i]都是一种情况?还是if语句是唯一的解决方案。 constexpr int arr [] = {35,2,234,42,...,N}; //
在问这个之前,我读了前面的问题,但是问题有所不同。我在课堂上使用了它:static constexpr char * kSuffix =“ tos”;使用c ++ 11用gcc编译时出现此错误:...
下面的代码在clang 7+中编译,但在5&6中不编译(使用c ++ 17和c ++ 14)。 c 5和6的问题似乎是隐式副本ctor从可变成员x读取。可以...
以下代码是否合法?模板 class foo {public:constexpr foo(){for(int i = 0; i
您能给我一个cppreference中constexpr描述的例子吗? [关闭]
在https://en.cppreference.com/w/cpp/language/constexpr中constexpr说明符声明可以在编译时评估函数或变量的值。我想知道如何...
是否有可能在编译时将base64编码的数据解码为二进制数据?我想到的是这样的:constexpr自动解码= encodeBase64();或constexpr ...
我正在寻找一种在编译时将类型映射到数值的方法,理想情况下不使用此答案中建议的哈希。由于指针可以是constexpr,因此我尝试了以下方法:struct Base {}; template&...
[在其他一些语言中,您可以指定枚举以及状态,例如:public enum Planet {MERCURY(3.303e + 23,2.4397e6),VENUS(4.869e + 24、6.0518e6),EARTH(5.976e + 24, 6.37814e6),...
我不清楚在constexpr函数中何时使用非类型模板参数(C ++ 20)或常规参数。我不清楚,限制是什么,何时从纯参数切换到...
我在std :: pair中使用auto玩耍。在下面的代码中,函数f()应该返回依赖于模板参数的std :: pair类型。一个有效的示例:示例1模板&...
std :: tuple是否可以根据其值在编译时/运行时排序
我想知道constexpr std :: tuple是否可以在编译时排序:template struct A {T val; }; //启用constexpr的类constexpr auto t = std :: make_tuple(A {{3} ...
我创建了一个名为DBG的宏,该宏本身会打印一个表达式及其计算所得的值。因此DBG(5 + 1)应该打印5 + 1 =6。该宏可以正常工作。但是,如果我封装了多个......>
考虑一个具有常量成员的类:class foo {public:const static int N; }; foo :: N需要初始化:constexpr int foo :: N = 5;并注意如何使用constexpr限定词代替...
g ++编译器是否在不使用其返回值的情况下将constexpr函数视为常规函数?
我试图查看由g ++编译的cpp constexpr函数的编译代码。我看到,如果函数不返回任何内容,则编译器会将其视为常规函数,但如果返回......>
结构数据{uint8_t nibble1:4,nibble2:4; constexpr data(){nibble1 = 2; nibble2 = 4; };这使我在GCC 9.2.0上遇到以下两个编译错误:...
我正在尝试使用模板元编程,constexpr以及if constexpr,并提出了3种不同的方法来执行N递归/ N因子运算。这三个例子都是我所拥有的...
在以下代码中:struct test {struct Data {};静态constexpr const数据data1 {};静态constexpr const数据data2 {};静态constexpr const Data * pdata1 =&data1; ...
我有一个函数,需要一个多维矢量,并且需要将深度(或维数)作为模板参数传递。我想写的不是硬编码此值,而是...
使用全局std :: array引用作为模板参数时如何简单地使用参数?
这在C ++ 17中有效:模板 &ARRAY>类Foo {}; constexpr std :: array A {1,2,3}; void bar(){Foo <3,A> foo_a; }因此...