constexpr 相关问题

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

constexpr:为什么我的表达式不是常量表达式?

我想在编译时定义一些缓冲区并使用 static_assert 检查它们的大小: 结构缓冲区{ int* 数组; size_t 尺寸; }; 模板 结构体ConstAr...

回答 1 投票 0

变量上的 consteval 与 constexpr

constexpr 和 consteval 之间有什么区别吗? consteval int x1 = 2; constexpr int x2 = 5; 使用 constexpr 比 consteval 更好吗?

回答 1 投票 0

c++11 constexpr 将 std::array 列表展平为数组

我从 c++11 开始,constexpr 和模板元编程似乎是在微型微控制器上节省稀缺内存的好方法。 有没有办法编写一个模板来展平 constexpr arr 列表...

回答 5 投票 0

无法在 C++ 中将类方法指定为 constexpr

我正在使用 constexpr 函数(字符串 -> NFA -> DFA)在 C++ 中编写一个简单的编译时正则表达式解析器。但是,我无法将我的一些类方法设置为 constexpr。我尝试了各种组合...

回答 1 投票 0

编译时初始化成员数组

是否可以在编译时初始化array_object的idx值,使得member_array[0].idx = 0;成员数组[1].idx = 1; ...member_array[array_size-1].idx = array_size-1。价值

回答 1 投票 0

如何在 C++11 constexpr 中检查双精度位模式是否为 0x0?

我想检查给定的双精度/浮点变量是否具有实际的位模式 0x0。不要问为什么,它用在 Qt 中的一个函数(qIsNull())中,我想将其设置为 constexpr。 原始代码使用了...

回答 4 投票 0

如何在 C++ 中使用 lambda 进行静态成员初始化? [已关闭]

我正在 C++ 17 中处理 DDD 值对象,所以一切都是 const/constexpr ,工作得很好。有以下两个类: JD级决赛 { 民众: constexpr 显式 JD(const 无符号

回答 2 投票 0

源文件全局范围内的 constexpr 变量

在源文件中声明 constexpr 常量的正确方法是什么?我分为两种方式: constexpr int ORDER = 1; 与 命名空间{ constexpr int ORDER = 1; } // 未命名的命名空间 重新...

回答 1 投票 0

如何使用初始化列表初始化 constexpr 类?

我编写了一个表示大整数的模板类,如下所示: 模板 类整数最终{ //一些公共函数。 私人的: 埃莱梅...

回答 2 投票 0

为什么我可以在 constexpr 函数内调用非 constexpr 函数?

考虑以下代码: #包括 constexpr int f() { return printf("副作用! ”); } int main() { 字符a[f()]; printf("%zd ",a) 的大小; } 我会有前...

回答 2 投票 0

MSVS 社区 2022 不允许使用带有 cout 的 constexpr,但 gcc 允许。哪个是正确的?

以下代码无法在 msvs 社区 2022 上编译,显示“错误 C3615:constexpr 函数 'logError' 无法生成常量表达式。” #包括 #包括<

回答 1 投票 0

C++1y/C++14:将静态 constexpr 数组转换为非类型模板参数包?

假设我有一个静态存储持续时间的 constexpr 数组(已知范围): constexpr T input[] = /* ... */; 我有一个需要包的输出类模板: 模板 结构

回答 2 投票 0

constexpr 指向 constexpr 数组的指针,不是常量表达式

我遇到编译错误, constexpr char array[]={"我的字符串"}; constexpr const char* ptr = 数组; **(const char*)(& array) 不是常量表达式** 我认为使用 const...

回答 1 投票 0

在模板参数中使用 constexpr 向量 (C++20)

最近,我一直在使用 C++20 的新 constexpr std::vectors (我使用的是 GCC v12),并且遇到了一个小问题(这实际上是我上一个问题的扩展,但是我也这么想

回答 1 投票 0

在定义之前使用 constexpr 函数失败

我在使用 constexpr 时遇到了一些问题。 《C++ Primer》一书展示了一行代码: constexpr int sz = size(); // 只有 size() 是 constexpr 函数 // 这段代码是ri...

回答 2 投票 0

在编译时计算“const char *”字符串哈希值

我有一个计算字符串文字散列的函数: 内联 consteval uint64_t HashLiteral(const char* key) { // 身体在这里并不重要... 返回0; } 在另一个函数中我需要...

回答 1 投票 0

constexpr int* ptr =&i 在 msvc 中编译,但不能在 clang 和 gcc 中编译

我正在使用此处列出的书籍学习 constexpr 变量。特别是我在 C++ Primer 中读到: 声明为 constexpr 的变量是隐式 const,并且必须使用常量初始化

回答 2 投票 0

constexpr vs const vs constexpr const [重复]

变量上的 const 与 constexpr 如果使用 double (或者当然是 float ),那家伙关于 constexpr 的说法是正确的。但是,如果将 var 类型从 double 更改为整数类型(如 int、char)...

回答 3 投票 0

const int 和 const double 在编译时的区别

在阅读这篇文章时,我遇到了这个例子: #包括 #包括 int main() { 常量 int var1 = 5; 常量双 var2 = 8.4; std::cout << &quo...

回答 1 投票 0

如何将枚举变量传递给具有枚举模板专门化的结构体

我设计了一个具有枚举模板专业化的结构,如下所示: 模板 结构类型特征; 模板<> 结构类型特征 { 静态常量表达式

回答 2 投票 0

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