constexpr 相关问题

constexpr是C ++ 11中引入的修饰符,它通知编译器函数或变量的值是已知的,或者可以在编译时计算。因此,它可以在不可能的地方用作常数。

为什么我的constexpr对象不是我的函数内部的constexpr?

我写了一个可以在编译时初始化和复制的类,并且使用我函数外部的对象在编译时也可以工作。现在,我想将我的constexpr对象传递给函数以执行一些操作...

回答 1 投票 1

可以在switch语句中使用任意大小的constexpr数组吗?

是否可以在switch语句中使用大小可变的constexpr数组,以使每个arr [i]都是一种情况?还是if语句是唯一的解决方案。 constexpr int arr [] = {35,2,234,42,...,N}; //

回答 3 投票 0

C ++字符串文字和常量

在问这个之前,我读了前面的问题,但是问题有所不同。我在课堂上使用了它:static constexpr char * kSuffix =“ tos”;使用c ++ 11用gcc编译时出现此错误:...

回答 1 投票 1

constexpr和可变成员和隐式副本ctor

下面的代码在clang 7+中编译,但在5&6中不编译(使用c ++ 17和c ++ 14)。 c 5和6的问题似乎是隐式副本ctor从可变成员x读取。可以...

回答 2 投票 4

是否可以在constexpr构造函数中初始化数组?

以下代码是否合法?模板 class foo {public:constexpr foo(){for(int i = 0; i

回答 1 投票 0

您能给我一个cppreference中constexpr描述的例子吗? [关闭]

在https://en.cppreference.com/w/cpp/language/constexpr中constexpr说明符声明可以在编译时评估函数或变量的值。我想知道如何...

回答 1 投票 -1

C ++中的编译时Base64解码

是否有可能在编译时将base64编码的数据解码为二进制数据?我想到的是这样的:constexpr自动解码= encodeBase64();或constexpr ...

回答 2 投票 4

比较两个constexpr指针不是constexpr吗?

我正在寻找一种在编译时将类型映射到数值的方法,理想情况下不使用此答案中建议的哈希。由于指针可以是constexpr,因此我尝试了以下方法:struct Base {}; template&...

回答 1 投票 4

通过可变参数创建枚举?

[在其他一些语言中,您可以指定枚举以及状态,例如:public enum Planet {MERCURY(3.303e + 23,2.4397e6),VENUS(4.869e + 24、6.0518e6),EARTH(5.976e + 24, 6.37814e6),...

回答 1 投票 0

当在constexpr函数中使用模板非类型类或普通参数时

我不清楚在constexpr函数中何时使用非类型模板参数(C ++ 20)或常规参数。我不清楚,限制是什么,何时从纯参数切换到...

回答 1 投票 2

std :: pair 返回类型

我在std :: pair中使用auto玩耍。在下面的代码中,函数f()应该返回依赖于模板参数的std :: pair类型。一个有效的示例:示例1模板&...

回答 1 投票 2

std :: tuple是否可以根据其值在编译时/运行时排序

我想知道constexpr std :: tuple是否可以在编译时排序:template struct A {T val; }; //启用constexpr的类constexpr auto t = std :: make_tuple(A {{3} ...

回答 1 投票 2

如何在编译时从string_view中删除子字符串?

我创建了一个名为DBG的宏,该宏本身会打印一个表达式及其计算所得的值。因此DBG(5 + 1)应该打印5 + 1 =6。该宏可以正常工作。但是,如果我封装了多个......>

回答 1 投票 0

静态成员声明为const,但初始化为constexpr

考虑一个具有常量成员的类:class foo {public:const static int N; }; foo :: N需要初始化:constexpr int foo :: N = 5;并注意如何使用constexpr限定词代替...

回答 1 投票 5

g ++编译器是否在不使用其返回值的情况下将constexpr函数视为常规函数?

我试图查看由g ++编译的cpp constexpr函数的编译代码。我看到,如果函数不返回任何内容,则编译器会将其视为常规函数,但如果返回......>

回答 1 投票 2

具有位域的结构的Constexpr构造函数

结构数据{uint8_t nibble1:4,nibble2:4; constexpr data(){nibble1 = 2; nibble2 = 4; };这使我在GCC 9.2.0上遇到以下两个编译错误:...

回答 1 投票 0

[3种在C ++中进行N阶编译时间的不同/相同方式

我正在尝试使用模板元编程,constexpr以及if constexpr,并提出了3种不同的方法来执行N递归/ N因子运算。这三个例子都是我所拥有的...

回答 1 投票 0

c ++ constexpr指针和constexpr比较

在以下代码中:struct test {struct Data {};静态constexpr const数据data1 {};静态constexpr const数据data2 {};静态constexpr const Data * pdata1 =&data1; ...

回答 1 投票 1

在编译时获取多维矢量的深度

我有一个函数,需要一个多维矢量,并且需要将深度(或维数)作为模板参数传递。我想写的不是硬编码此值,而是...

回答 3 投票 4

使用全局std :: array引用作为模板参数时如何简单地使用参数?

这在C ++ 17中有效:模板 &ARRAY>类Foo {}; constexpr std :: array A {1,2,3}; void bar(){Foo <3,A> foo_a; }因此...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.