constexpr 相关问题

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

编译时循环优化

我发现有点难以理解为什么以下结果会导致编译时计算。我已经读过这个,这个,以及关于stackoverflow的更多问题告诉我以下内容......

回答 1 投票 4

局部常量变量不是constexpr可评估的,但无法弄清楚原因

我试图将一个int作为参数并单独操作它的字节,例如取0xDEADF00D并逐个处理每个字节:0xDE 0xAD 0xF0 0x0D为此,我做了以下...

回答 1 投票 2

的std ::阵列 复杂类型,N = 256 /大[重复]

我正在寻找一种填充std :: array的方法 T是一个非默认可构造的结构/类,N确实在编译时已知,但是很大,你不想硬编码......

回答 1 投票 1

如何以静态方式使用另一个constexpr数组初始化一个数组

我有一个像这样的constexpr数组:constexpr std :: array BASES_TO_CHECK = {8,16,32,64};我想做类似于:std :: array的事情 ...

回答 1 投票 2

是否可以为AVR编写constexpr舍入函数?

我正在编写一个类来设置AVR微控制器上的串行端口。我有一个模板函数,它将cpu时钟值和所需的波特率作为参数,快速计算,验证...

回答 2 投票 0

Constexpr数学函数

从这个页面中可以看出,c ++ 11中的数学函数似乎都没有使用constexpr,而我相信所有这些函数都可以。这让我有两个问题,一个是他们为什么......

回答 3 投票 55

如果constexpr vs if with constant [duplicate]

如下所示:链接,如果两个if分支都有效,则:const int foo = 5; if(foo == 5){...} else {...}和const int foo = 5;如果constexpr(...

回答 2 投票 3

子类constexpr类获取不同的用户定义的转换行为

我有一个库中的constexpr类,用于创建和管理浮点数的定点表示:template <unsigned Integer,unsigned Fraction> class ...

回答 1 投票 0

const_cast在常量表达式中是否有效? (C ++ 14,C ++ 17)

遇到的具体问题是编译器如何处理它有一些不一致。例如,此代码(https://godbolt.org/z/08Z-zi):constexpr auto value = 1; ...

回答 1 投票 4

静态变量的Constexpr构造函数导致动态初始化

我有以下程序:#include void Init(); struct Foo {Foo(){int * p = new int; //只是为了确保Foo的ctor不是常量表达式Init(); ...

回答 1 投票 0

在constexpr中用工会取代reinterpret_cast - 好主意?

我使用此代码将指针转换为size_t,它在:: std :: hash函数中使用,该函数应该在编译时散列给定指针,并且因为在constexpr中不允许reinterpret_casts,...

回答 2 投票 0

为什么我的编译器显示关于constexpr函数的错误?

晚上好,我必须实现一个带有constexpr函数的类,它在头文件中返回一个类成员。该成员是const并在我的构造函数中设置,因此它不会在以后更改...

回答 1 投票 0

可以在程序中多次定义内联函数或constexpr函数吗? [重复]

我正在阅读C ++ Primer书。对于像我这样的初学者,我发现它真的很有趣,也很容易理解。但当我达到这个主题时:“在头文件中放置内联和constexpr函数”它是......

回答 1 投票 1

如果函数名为constexpr,则条件为static_assert

我知道有一个constexpr()运算符的提议,但这还没有在gcc / clang中实现。我也知道使用机器代码编辑等一些技巧有一个错误:http:...

回答 2 投票 6

局部变量的地址是constexpr吗?

在Bjarne Stroustrup的书“The C ++ Programming Language(4th Edition)”中。 267(第10.4.5节地址常量表达式),他使用一个代码示例,其中局部变量的地址设置为...

回答 4 投票 23

constexpr上下文中的std :: optional赋值运算符

我在std :: optional上摸不着头脑,根据文档,它不应该有一个constexpr赋值运算符。但是,当我在gcc-8.1中尝试这个片段时,它编译并正常工作:...

回答 1 投票 9

如何声明constexpr C字符串?

我想我非常理解如何使用关键字constexpr作为简单的变量类型,但是当涉及到指向值的指针时我很困惑。我想声明一个constexpr C字符串文字,...

回答 2 投票 12

下面的代码,它是不正确的NDR还是形成良好?

Clang接受以下代码,但gcc拒绝它。 void h(){} constexpr int f(){return 1; H(); } int main(){constexpr int i = f();这是错误消息:g ++ -std = c ++ 17 ...

回答 1 投票 24

有没有办法构造一个constexpr函数来获取double的位表示?

是否有一种标准的方法来构造一个constexpr函数,允许将double转换为64位表示:constexpr uint64_t double_to_uint64_t(double d){?????? } 以便 ...

回答 1 投票 1

constexpr vs内联汇编代码差异

我遇到了这个很棒的在线编辑器https://godbolt.org/,它显示了代码的汇编版本。我还在阅读有关新的C ++ 11功能的文章,并了解了constexpr。看一眼 ...

回答 1 投票 0

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