constexpr 相关问题

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

使用反射获取类构造函数的类型列表

我需要一个模板,它接收一个类作为类型,并从其构造函数返回一个类型列表。我尝试使用这个 SO 问题的第一个答案,但它只适用于某些类。这个他……

回答 0 投票 0

两个 C++ 编译器不同意我的“count_args”函数是否是 constexpr

这是一个小函数,可以计算您传入的参数数量: #包括 constexpr static int count_args() { 返回 0; } 模板 constexpr 站...

回答 2 投票 0

`constexpr` 函数可以包含副作用吗?

我正在学习“编程:使用 C 的原理和实践”,需要一些帮助来理解第 291 页上关于 constexpr 函数的这一点: constexpr 函数的行为就像一个普通的

回答 0 投票 0

如果文件在编译时不存在,我可以 static_assert 吗?

我想确保传递给 gui 的资源图像文件在编译时确实存在。就像是 load_image(static_assert(!(std::filesystem::exists(pathToFile)), "资源...

回答 1 投票 0

GCC、LLVM 和 MSVC 不同意将 constexpr std::string 的内容传递给运行时世界。谁是对的?

我试图在编译时创建一个 std::string 并将其内容传递到运行时世界。与此同时,我偶然发现了这个问题: #包括 #包括 模板 ...

回答 1 投票 0

C++20 模块 - 无法导出 const 和 constexpr

我尝试在 GCC 编译器中为 STM32 微控制器使用 C++20 模块。我面临的问题是我无法导出模块中声明的任何常量或 constexpr: sys_defs 模块: 导出模块 sys_d...

回答 0 投票 0

不使用时实例化static const和static constexpr成员变量

在下面的示例中,我有一个带有静态常量和静态 constexpr 成员变量的类模板。 模板 struct S { // MSVC: clang:...

回答 0 投票 0

lambda 参数列表中的类型可以引用未捕获的外部变量吗?

我正在尝试使用 std::size 而不是像 _countof 或 ARRAYSIZE 这样的宏,但我遇到了范围界定问题。 下面的代码合法吗? #包括 主函数() { 内部 arr1[4]...

回答 1 投票 0

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

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