constexpr相关内容

通过constexpr或模板函数在编译时获取多维std :: array的大小

我使用三维 std :: array ,因为在编译时已经知道大小。但是,我注意到size()函数不是静态的,因此constexpr / template函数无法访问。 我已经找到下面的演示示例,该示例估计一维 std :: array 的大小。但是,这不适用于两个或多个维度。有没有一种方法可以通过为 x,y,z,...编写带有附加模板参数 dim 的函数来返回其他维度。 code>维? ..
发布时间:2020-09-27 23:52:17 C/C++开发

“整数常数溢出”; constexpr中的警告

我试图找到一个与constexpr兼容的哈希函数,以用于在编译时对字符串进行哈希处理。字符串的数量确实很少(小于10),而且我需要单独检查冲突,因此该算法可能远非完美。我在互联网上的某个地方找到了以下版本的FNV1A: 静态constexpr unsigned int Fnv1aBasis = 0x811C9DC5; static constexpr unsigned int Fnv1a ..
发布时间:2020-09-27 23:07:00 C/C++开发

在编译时初始化c ++ std :: bitset

我正在尝试在编译时使用其某些索引来初始化std :: bitset ,例如将50-75和200-225设置为1。 基于 http://en.cppreference.com/w/ cpp / utility / bitset / bitset 看来我的2个选项是: constexpr bitset( ); constexpr bitset(unsigned long long ..
发布时间:2020-09-27 21:58:41 C/C++开发

C ++:switch语句中的struct成员

我正在用C ++写一个微处理器仿真器,我的目标之一是使它的代码可读性强。为了实现操作码,我有一个用来表示单个处理器指令的结构,它同时包含操作码和程序计数器的前进距离。 struct指令 { const int opcode;。 //指令操作码 const int op_size; //将计划计数器 推进多远}; const指令HALT {0x76,1}; const指令N ..
发布时间:2020-09-27 21:45:40 C/C++开发

在类模板中正确初始化静态constexpr数组?

由于标准的困扰,C ++中的静态类成员对我造成了一些困惑: 9.4.2静态数据成员 [class.static.data] 在其类定义中声明静态数据成员不是定义... 但是在其声明时(例如,在 constexpr 中需要初始化 constexpr ) 由于对constexpr的限制,我实际上已经忘记了在类外定义静态成员的必要条件,直到尝试访问静态constexpr数组为止。 ..
发布时间:2020-09-27 21:36:43 C/C++开发

为什么对于类级别的积分常量,我为什么更喜欢在类中使用静态constexpr int而不是枚举?

C ++ 17更新: 静态constexpr 变量隐式地 inline 因此不需要外部定义。 原始问题: 假设我有一个常量列表,例如 struct Cls { 静态constexpr int N = 32 ; 静态constexpr int M = 64; }; 这当然表明我为它们添加了定义,以避免可能发生的ODR使用问题,所以我需要: con ..
发布时间:2020-09-27 20:45:22 C/C++开发

为什么在适用时不暗示constexpr?

这些可能应该在不同的问题中,但是它们是相关的…… 为什么我们要写 constexpr 呢?给定一组限制,编译器无法评估代码以查看其是否满足 constexpr 的要求,并将其视为 constexpr 是否这样做?作为纯粹的文档关键字,我不确定它是否成立,因为我无法想到我(其他人 constexpr 函数)应该真的在乎它是否在运行。 这是我的逻辑:如果这是一个昂贵的函数,我认为按照惯例, ..
发布时间:2020-09-27 20:42:07 C/C++开发