constexpr 相关问题

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

gcc:C23 中的 constexpr 函数?

使用 GCC v14.0(应该接近即将发布的 GCC v13.1)使用 constexpr,我编译了以下模块: constexpr int f (int x) { 返回 x + 2; } constexpr ...

回答 1 投票 0

“if constexpr()”与“if()”之间的区别

if constexpr() 和 if() 有什么区别? 我何时何地可以同时使用它们?

回答 2 投票 0

验证定长字符串数组在编译时是否排序

当试图验证固定长度字符串数组在编译时是否已排序时,使用 strncmp 会出现奇怪的行为。 如果验证函数引用了全局数组,所有值...

回答 1 投票 0

“if constexpr()”与“if()”之间的区别

if constexpr() 和 if() 有什么区别? 我何时何地可以同时使用它们?

回答 2 投票 0

转发声明一个 constexpr 数组模板

已经问过类似的问题。 但是,我想了解为什么对于数组,下面的第一行不编译而第二行编译: template constexpr float x[2]; //

回答 0 投票 0

std::vector 上的 constexpr 说明符不起作用

编辑:这现在在带有非空初始化的 godbolt(gcc,msvc)上出错。有一些混乱,因为当 Godbolt 不是时,我的 msvc 出现空初始化错误(可能是因为我的 ...

回答 1 投票 0

constexpr std::vector 不适用于 msvc

这只是我机器上的错误。自 v19.29 以来,它适用于 Godbolt。我的 msvc 是 v19.35。 #包括 constexpr std::size_t f() { constexpr std::vector aaa{}; 返回 1...

回答 1 投票 0

检查是否可以计算 lambda constexpr (C++17)

我正在尝试找到一种方法来检查 lambda 是否可以持续评估或 不在 C++17 中。假设我要检查的 lambda 不带 参数。 我偶然发现 这 问题,谁接受...

回答 1 投票 0

constexpr 一般混乱

我昨天发了一个帖子,但我认为它不清楚并且得到的回复根本没有解决我的困惑。因此,我将尝试使示例更简单。 为什么允许这样做: constexpr int 我...

回答 1 投票 0

在编译时生成位掩码

我想在编译时生成各种位掩码: 0x11111111 或 0x1111111111111111 0xF0F0F0F0 或 0xF0F0F0F0F0F0F0F0 大小将取决于类型,32 位或 64 位。 前任: 特...

回答 3 投票 0

如何在 constexpr 上下文中调用 ExecutionPolicy 算法?

我想用 ExecutionPolicy 调用标准库算法进行矢量化。同时调用也应该在 constexpr 上下文中工作。不幸的是,ExecutionPolicy 超载了......

回答 0 投票 0

如何使用成员函数初始化 constexpr std::array 类成员? [重复]

我想编写一个具有 std::array 类型的 constexpr 成员的类。 我可以使用 constexpr 免费(非成员)函数初始化这个数组成员,如下所示: 命名空间 ...

回答 0 投票 0

“if constexpr()”与“if()”之间的区别

if constexpr() 和 if() 有什么区别? 我何时何地可以同时使用它们?

回答 2 投票 0

在编译时使用 constexpr 填充类内 C 样式数组

我有一个类使用看起来像这样的表格方法来计算 CRC(它是不完整的): 模板 我有一个类使用看起来像这样的表格方法来计算 CRC(它是不完整的): template<typename CrcBaseType, uint32_t Polynomial, uint32_t InitialValue, uint32_t XorOut, bool ReverseInput, bool ReverseOutput> requires std::unsigned_integral<CrcBaseType> class CrcDriver{ public: CrcDriver() {}; private: const CrcBaseType table[256]; const uint8_t size = sizeof(CrcBaseType); private: constexpr void genTable() { for (uint32_t divident = 0; divident < 256; divident++) { uint32_t curByte = divident << (8 * (size - 1)); for (uint8_t bit = 0; bit < 8; bit++) { if ((curByte & (0x80 << (8 * (size - 1)))) != 0) { curByte <<= 1; curByte ^= Polynomial; } else { curByte <<= 1; } } table[divident] = curByte & (0xFFFFFFFF >> (4 - size) * 8); } } constexpr void genTableR() { Polynomial = ReverseWord(Polynomial) >> (4 - size) * 8; for (uint32_t divident = 0; divident < 256; ++divident) { uint32_t curByte = divident; for (uint8_t bit = 0; bit < 8; bit++) { if ((curByte & 0x00000001) != 0) { curByte >>= 1; curByte ^= Polynomial; } else { curByte >>= 1; } } table[divident] = curByte & (0xFFFFFFFF >> (4 - size) * 8); } } }; 我不需要在运行时重新定义它。如何在编译时使用 constexpr genTable/R 填充表?

回答 0 投票 0

How to make static field of a struct/class constexpr? [重复]

我有一个表示 3D 向量的 Vec 结构,我想让它成为静态成员零 constexpr。 结构向量 { 双X; 双Y; 双Z; 静态常数 Vec 零; // 定义 ...

回答 0 投票 0

const char* 不能用作 std::char_traits<char>::length

我有以下代码: constexpr uint32_t countWords(const char* str) { constexpr std::size_t length = std::char_traits::length(str); std::uint32_t 计数 = 0; 对于 (std::...

回答 3 投票 0

clang 编译器不像 gcc 那样编译代码

#include #包括 使用命名空间标准; 模板 constexpr const int *测试() { 返回指针+1; } constexpr array ar{1, 2, 3}...

回答 1 投票 0

一个类不能有自己的静态 constexpr 成员实例吗?

这段代码给我不完整的类型错误。 问题是什么?不允许一个类拥有其自身的静态成员实例吗? 有没有办法达到相同的结果? 结构尺寸 { ...

回答 4 投票 0

为什么这个互斥量不能被constexpr构造?

#include 主函数() { constexpr 静态 std::mutex my_mooootex; } 我得到以下错误: “初始化不是恒定的” 在 Microsoft Visual Studio Community 2022 上。std::m...

回答 0 投票 0

多个遗产断言的可变模板----".用3个模板参数重新声明."

我想在AVR编程中实现自己的std::is_base_of(avr-gcc还不支持 . 我从cppreference页面的可能实现中得到灵感,它...

回答 2 投票 0

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