constexpr相关内容

具有类成员和constexpr链接时优化的C ++ 11枚举

在我的项目中,我有很多枚举,这些枚举需要具有与枚举成员关联的其他属性以及与枚举类型关联的辅助静态方法。 据我所知,标准枚举类MyItem {...}不可能实现,因此对于我项目中的每个枚举类,我都有一个辅助类MyItemEnum,该类封装了这些辅助静态方法并实例化了自身的辅助实例,这样我就可以访问它们的方法以获得其他属性。 下面是一个示例(尽可能简化,但我相信所有要讨论的功能都保留在那里 ..
发布时间:2020-10-08 18:31:02 其他开发

什么是C ++中的constexpr?

我真的对 constexpr 概念感到困惑,因为我读过 constexpr 是在编译时评估的,所以与常规 const 相比,它对性能优化很有用。 constexpr int i = 0; constexpr int& ri = i; 上面的代码从类型的表达式返回错误“类型为'int&'的引用的无效初始化” 'const int'“,为什么? 此外,下一个代码 ..
发布时间:2020-10-08 06:22:56 C/C++开发

返回语句中的C ++ constexpr函数

为什么在编译时不对constexpr函数进行求值,而在运行时在主函数的return语句中求值? 它尝试了 template constexpr int fac(){ return fac()* x; } template constexpr int fac(){ 返回1; } int main(){ const ..
发布时间:2020-10-01 22:23:30 C/C++开发

C ++ 20 constexpr容器将如何工作?

为 constexpr std :: string 和 constexpr std :: vector 已被C ++ 20接受,如何使用它们?链接的文件在细节上很短。我们是否需要指定特殊的 constexpr 分配器,使编译时字符串/向量与它们的常规等效项不兼容? 解决方案 这两篇论文在很大程度上取决于 P0784 ,其中讨论了如何在编译时分配-时间会起作用。 不完整的答案: ..
发布时间:2020-09-28 02:50:44 C/C++开发

如果语句无法评估条件

我有一个基本类,其中包含两个枚举器,一个枚举用于输入,一个枚举用于输出。它具有两个都是静态的成员函数。第一个函数只是一个静态函数,它根据输入返回一个值。它将调用第二个函数,这是一个constexpr函数模板,它将返回constexpr值。 class Foo { public: 枚举输入{ INPUT_0 = 0, INPUT_1, INPUT_2 }; 枚举输出{ OU ..
发布时间:2020-09-28 02:40:44 其他开发

Constexpr成员函数

假设我有一个由引擎参数化的 struct 模板 S : template结构S; 我有两个引擎:一个带有 constexpr的“静态”引擎成员函数 size(),以及一个带有非 constexpr 成员函数的“动态”变量 size(): struct Static_engine { static constexpr std :: ..
发布时间:2020-09-28 02:31:36 C/C++开发

为什么`std :: invoke`不是constexpr?

不应 std :: invoke constexpr ,尤其是在C ++ 17中 constexpr lambdas ? 是否有任何障碍可以阻止这种情况? 解决方案 更新: P1065 将其设置为 constexpr 。 出于历史原因保留原始帖子: 来自提案: 尽管有可能将符合标准的调用函数模板实现为constexpr函数,建议的措辞不需要这种实现。主要原因是使它与 ..
发布时间:2020-09-28 02:29:50 C/C++开发

constexpr结构成员初始化

此代码编译: struct Info { constexpr Info(bool val):已计算(false),value(unsigned(val)){} constexpr Info(unsigned val):counted(true),value(val){} 布尔计数; 无符号值; }; constexpr const auto data = std ..
发布时间:2020-09-28 02:22:31 C/C++开发