constexpr 相关问题

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

在 constexpr 构造函数中使用 lambda 函数和 std::tie

我尝试在 C++17 中使用 constexpr 构造函数和 lambda,该 lambda 使用 std::tie 从元组初始化类中的字段。 代码类似于: #包括 枚举类...

回答 1 投票 0

在 constexpr 构造函数中使用 lambda 函数

我尝试在 C++17 中使用 constexpr 构造函数和 lambda,该 lambda 使用 std::tie 从元组初始化类中的字段。 代码类似于: #包括 枚举类...

回答 1 投票 0

std::bit_cast 相当于 CUDA 设备端代码?

我有几个“神奇”的浮点常量,我想在 CUDA 设备端计算中以 constexpr 符号的形式使用位精确的常量。在主机端,您可以使用 std::bit_...

回答 1 投票 0

gcc/msvc 编译以下内容,clang 则不会。有解决办法吗?

#包括 #包括 #包括 // A 静态断言( 标准::可选< std::vector< int > >{ std::vector< int >{ 1, 2, 3 } ...

回答 1 投票 0

如何使用 C++ constexpr 函数返回编译常量字符串文字

我有一个 constexpr 函数,我试图从 __FILE__ 宏中删除文件名,即删除除路径之外的所有内容。为此,我草拟了这个基本函数,并将其设为 constex...

回答 3 投票 0

如何从 std::array 为可变参数构造函数生成初始值设定项列表

作为简化,假设我们有两种不同类型的引脚和一个容纳其中一种的板 // 板引脚 结构 BoardPin { }; // 另一种引脚 结构特殊引脚 { }; // 一块板...

回答 1 投票 0

std::unordered_set 与 constexpr std::vector 用于存储不可变数据

不幸的是,即使 C++23 也没有 constexpr 集:( 我希望存储适量(可能~100)的字符串,代表系统中存在的不同配置。我只需要

回答 1 投票 0

constexpr 函数何时在编译时求值?

既然声明为 constexpr 的函数有可能在运行时被调用,那么编译器根据什么标准决定是在编译时还是在运行时计算它呢? 你...

回答 3 投票 0

constexpr 范围产生与非 constexpr 不同的结果

我有以下代码: #包括 #包括 自动 func(const char* Str) { 返回 std::string_view(Str) | std::views::split(',') |标准::视图::

回答 1 投票 0

C++ 在一行中将算术硬编码分数标记为 constexpr

我有一个简单的函数来检查一个值是否大于三分之一: 布尔检查(浮动x){ 返回 x > 1.f/3; } 根据我读到的内容,编译器可能会计算结果......

回答 1 投票 0

如何在 C# 中声明编译时常量函数

在C++中,我们可以使用宏或constexpr(如C++11所说)。我们可以用 C# 做什么? 请参阅“无法声明...”评论了解上下文: 静态类常量 { // 我们必须确保这是编译时间...

回答 2 投票 0

为什么 std::nextafter 不是常量表达式?

为什么下面的代码对于a2没有问题,但是对于z1却不能编译? #include // std::nextafter #include // std::numeric_limits int 主函数 () { constexpr 浮点...

回答 1 投票 0

使用常量表达式作为使用函数参数的模板参数:哪个编译器是正确的?

我有这段代码: 模板 结构常量 { constexpr 运算符 int() const noexcept { return V; } }; 模板 结构体数组 { }; 自动

回答 1 投票 0

opencv 有 constexpr 向量或矩阵容器吗?

我想做这样的事情,例如: constexpr std::array 颜色 { cv::Vec3b(0, 255, 0), // 绿色 cv::Vec3b(255, 0, 0), // 蓝色 CV::Vec3b(0, 0, 255), ...

回答 1 投票 0

static_casting 的结果是 constexpr void* 常量表达式吗?

clang 拒绝 gcc 允许的这段代码: int main() { 静态 constexpr const void *vp = nullptr; 静态 constexpr const char *cp = static_cast(vp); } 随着以下...

回答 2 投票 0

自定义字符串加密适用于某些字符串,但奇怪的是不适用于其他字符串?

目前正在开发 XorStr 的更强版本,并且也有兴趣出于纯粹的教育目的制作自己的版本,这就是为什么在下面提到的代码中我简化了实际的算法......

回答 1 投票 0

如何在C++中打印编译时计算的结果?

我编写了几个 constexpr 函数并在 static_asserts 中使用它们来控制一些资源限制。但我不仅想强制执行编译时谓词,还想查看实际值计算...

回答 6 投票 0

constexpr 与 static const:更喜欢哪一个? [已关闭]

对于定义如下所示的整型编译时常量(在函数和类范围内),哪种语法最好? 静态常量 int kMagic = 64; // (1) constexpr int kMagic = 64; // ...

回答 2 投票 0

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

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