constexpr 相关问题

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

当我尝试在非constexpr函数中运行constexpr函数时会发生什么?

标题可能会产生误导,不知道如何解释这一点,但我会提供一个例子。所以我有这样的结构:struct mom {public:static constexpr auto create(int i){return a(i); } ...

回答 1 投票 0

constexpr计算的编译时性能

我有一些标记为constexpr的非平凡的C ++ 17函数。他们正在进行与图形相关的计算(深度优先遍历)和通用算法(例如,查找,排序,唯一......)。如果我试图强迫......

回答 1 投票 0

c中的constexpr(或等价物)

我试图使用哈希函数获得基于字符串的开关表达式在C中工作。我已经能够使用'constexpr'使用Clang / LLVM转向C ++,使用干净的语法,即使...

回答 5 投票 4

使用从不打算在常量表达式中使用的constexpr变量是否有好处?

这是对此问题的后续问题。从链接问题中的一个答案来看,将变量声明为constexpr的目的并不是真正告知编译器......

回答 2 投票 1

如何在编译时从两个索引序列创建一个数组

(剧透 - 这是一个自我回答的问题)让我假装我有两个索引序列,例如使用i1 = std :: index_sequence <1,3,5,7>;并使用i2 = std :: index_sequence <2,4,6,8> ...

回答 5 投票 6

Constexpr静态成员函数用法

请考虑以下示例代码:#include struct MyClass {size_t value = 0; constexpr static size_t size()noexcept {return 3; }};模板 无效......

回答 1 投票 20

初始化constexpr std ::数组对

在C ++ 14中,如何初始化包含文本字符串的std :: pair的全局constexpr std ::数组?以下不起作用:#include constexpr std :: array

回答 1 投票 4

constexpr全局变量初始化[重复]

如果我有一个用存储声明的变量,即int x;并通过调用constexpr函数对其进行初始化,它将在main开始执行任何代码之前确定其值。 constexpr int ...

回答 1 投票 0

constexpr和一个带有重新解释强制转换的静态const void指针的初始化,哪个编译器是对的?

请考虑以下代码:struct foo {static constexpr const void * ptr = reinterpret_cast (为0x1); }; auto main() - > int {return 0;上面的例子编译......

回答 2 投票 16

如何确保constexpr函数从未在运行时调用?

假设您有一个为您的应用程序生成一些安全性令牌的函数,例如一些哈希盐,或者可能是对称或非对称密钥。现在让我们说你有这个功能......

回答 4 投票 14

MSVC无法使用模板自动参数识别constexpr函数

我试图为值列表中的值创建索引元查找器。这是代码:#include #包括 模板 struct ValueTplList; ...

回答 2 投票 4

将默认赋值运算符声明为constexpr:哪个编译器是对的?

考虑结构A1 {constexpr A1&operator =(const A1&)= default; ~A1(){}}; struct A2 {constexpr A2&operator =(const A2&)= default; ~A2()=默认值; }; struct A3 {...

回答 2 投票 31

constexpr vs重复函数调用性能

我正在测试下面的代码来检查constexpr的性能。对于第一次迭代,结果如预期。但是对于下一次迭代,正常函数调用优于constexpr ...

回答 2 投票 0

constexpr初始化数组以排序内容

这是一个难题而不是现实世界的问题,但我已经陷入了一种情况,我希望能够写出与模板完全相同的东西 结构...

回答 4 投票 8

错误:无法转换' ()'从' '到'结构'

模板 class Vec {T data [S]; public:constexpr Vec(const T&s):data {s} {}};模板 ...

回答 2 投票 1

从捕获constexpr函数返回值的变量中删除constexpr会删除编译时评估

考虑以下constexpr函数static_strcmp,它使用C ++ 17的constexpr char_traits :: compare函数:#include constexpr bool static_strcmp(char const * a,char const * ...

回答 3 投票 3

C ++检查if语句是否可以被评估为constexpr

有没有一种方法来决定是否可以对constexpr进行评估,并将结果用作constexpr布尔值?我简化的用例如下:模板 类来源......

回答 3 投票 19

如何判断constexpr是否返回引用

如果你有一个函数,如果constexpr()决定做一件事或另一件事,如何在一个案例中返回左值,在另一个案例中返回右值?以下示例不在...中编译

回答 2 投票 5

为什么异常说明符在重载运算符'<

exemplo.cpp:#include 使用std :: is_same; #包括 使用std :: declval; #包括 使用std :: ostream;使用std :: cout; struct Foo final {int ...

回答 1 投票 1

对仅由value使用的静态constexpr成员的未定义引用

我试图创建一个包含字体样式的聪明的类。在此之前由3个具有逐位兼容值的枚举组成(每组值与其他枚举没有重叠位)...

回答 1 投票 1

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