constexpr是C ++ 11中引入的修饰符,它通知编译器函数或变量的值是已知的,或者可以在编译时计算。因此,它可以在不可能的地方用作常数。
为什么 std::array 的运算符 ==() 没有标记为 constexpr?
在编译时想要比较 std::array 是很自然的;并且它的运算符 ==() 显然是 constexpr'able 的。然而 - 它没有被标记为 constexpr。这是有意为之还是疏忽?还有-什么...
对 constexpr 数组的每个元素进行 C++ constexpr 操作
是否可以迭代 constexpr C 数组/std::array/向量并对每个元素执行 constexpr 操作以及编译时要完成的所有操作? https://godbolt.org/z/5a4v3Eerh #
循环 2 个 constexpr 数组对来实例化并运行模板函数
项目的C++版本是20。 假设我们有一些服务类模板: 模板 类 SomeAbstractFileService { 民众: 无效初始化(){ std::cout << ...
在下面如果我使用 constexpr 编译器显然编译器说“表达式必须有一个常量值”,这发生在 MSVC 和 GCC 上: int main() { constexpr auto nnn = ...
如何以 constexpr 方式将整数转换为 CUDA 的 __half FP16 类型?
我是空中客车的开发人员,我面临着半精度算术的困难。 在库中的某个时刻,我需要在 constexpr 中将 IntType 转换为相关的 FloatType(相同的位数)
我是空中客车的开发人员,我面临着半精度算术的困难。 在库中的某个时刻,我需要在 constexpr 中将 IntType 转换为相关的 FloatType(相同的位数)
C++23 中的不同翻译单元中是否允许多个相同的非内联 constexpr 变量定义?
C++23 规定 constexpr 函数和静态数据成员是隐式内联的,但对于命名空间范围的 constexpr 变量却没有这样规定。 它还说:“对于任何可定义的......
我想创建一个打印到命令行的函数,其前缀在运行时永远不会改变,所以我想在编译时设置它。像这样的东西: print_sp(常量字符...
我正在尝试在 C++ 中创建一个 LUT,该 LUT 在编译时计算并简单地放置在内存中以供其他模块使用。这个 LUT 中的每一项都可以在编译时计算,它只是一个......
我正在尝试在 C++ 中创建一个 LUT,该 LUT 在编译时计算并简单地放置在内存中以供其他模块使用。这个 LUT 中的每一项都可以在编译时计算,它只是一个......
为什么 std::array 作为模板函数/泛型 lambda 的输入时不是常量表达式?
(与我的另一个问题有关;如果您也看一下,我将非常感激。) 如果 std::array::size 是 constexpr,那么为什么下面的代码甚至无法编译...
VS2022(版本 17.11.0)C++ constexpr 错误?
使用 constexpr 我遇到了一个奇怪的情况,我将其简化为一个简单的 C++ 示例,该示例在 VS2019 和 GCC 上运行良好(在 godbolt.org 上测试),但在最新的 VS2022(版本 17.11.0)上失败 康斯特...
你不能通过创建一个返回 std::array 的 constexpr 函数来创建一个 constexpr 数组吗?
我想在编译时构造一个数组值,并且在网上看到多个来源建议使用带有 constexpr 构造函数的结构: 模板 结构体A { constexpr A() ...
我在尝试将一段代码放入模板函数中时遇到了问题。该代码基本上执行钳位。下面是代码的可重现版本。 #包括 ...
我正在尝试编写一个 constexpr 查找函数,它将返回包含特定值的 std::array 的索引。下面的函数似乎工作正常,除非包含的类型是 const cha...
我很困惑这里出了什么问题。 我收到一个数组的未定义引用错误,我的定义方式与其他两个数组相同,它们不会在代码中的其他地方引发错误。 下...
在 GCC 13.3 中进行回归后,我必须将 constexpr 添加到程序中的默认飞船运算符中,并观察到编译器在 C++20 模式下处理某些代码的方式存在一些差异。这些可以是...
`constexpr向量`仍然失败,虽然cppreference中声明支持[重复]
在 https://en.cppreference.com/w/cpp/compiler_support 上,声明支持 constexpr 向量。 但是当我写的时候 #包括 constexpr std::vector vec{2, 3, 3, 3}; int 我...
C++1y/C++14:常量表达式中不允许在其生命周期之外对对象进行赋值?
根据当前草案,以下 C++14/C++1y 程序是否格式错误? #包括 模板 结构体字面量数组 { T数据[n]; }; 模板<
下面的程序已尽可能减少以显示 Visual Studio C++ 编译器遇到的问题。 f 是一些接受输入谓词对象 P p 的算法函数,它具有用户德...