constexpr 相关问题

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

通过引用调用`constexpr`成员函数-clang vs gcc

请考虑以下示例(摘要(0)):struct X {constexpr int get()const {return 0; };无效foo(const X&x){constexpr int i = x.get(); } int main(){foo(X {}); } ...

回答 1 投票 1

为什么constexpr解决重复定义?

我有一个头文件,其中字符串定义为静态全局。命名空间[{define NAME(P)static std :: string const s _ ## P = #P NAME(foo); NAME(栏); // ...其他值#undef NAME} ...

回答 2 投票 0

数组索引/指针算术在constexpr上下文中失败

我有一个矢量实现,并试图将存储的值T放入包装器中。包装器具有与T相同的内存布局,因此在T *上执行数组索引/指针算术似乎可以工作...

回答 2 投票 0

const有效,但不能constexpr

[这是我的头个难题,但它对const有效,但对constexpr不起作用,我想知道您是否聪明的人可以解释。与g ++ -std = c ++ 14一起编译。 struct Service {std :: string name; ...

回答 1 投票 0

条件constexpr函数

我这里有一个函数可能是constexpr的情况。通常,只有在上下文允许的情况下,才添加constexpr并使用常量评估。但是以下代码...

回答 1 投票 1

我如何确认我的constexpr表达式已在编译时实际执行

由于constexpr不能保证它会在“编译时”被处理,因此我想知道一些方法来检查我的代码是否在编译时已被完善。假设我...

回答 1 投票 0

是否需要更多constexpr容器使用mark_immutable_if_constexpr?

接受的C ++ 20提案“更多constexpr容器”(P0784)中的第一个代码示例使用函数std :: mark_immutable_if_constexpr。该功能是否被接受为同一提案的一部分?我看到了...

回答 1 投票 0

gcc v10和v9之间的constexpr区别:错误或功能

如果使用gcc v10编译,下面的代码将显示错误,但对于gcc v9,该代码可以。 template struct A {constexpr auto size()const {return N; };模板

回答 1 投票 5

是否可以将带有字符串化运算符的宏转换为constexpr?

我编写了以下宏来模仿C#的nameof运算符,但在C ++ / CLI中:#define nameof(x)(#x)if(info == nullptr)throw gcnew ArgumentNullException(nameof(info));我尝试过...

回答 1 投票 0

将INT32BE宏转换为constexpr是否正确?

我有以下宏,并希望将其转换为constexpr,因为显然这是一种更好的方法:#define INT32BE(x)(x [0] << 24 | x [1] << 16 | x [2] < <8 | x [3])尝试:...

回答 1 投票 0

将自动推导的lambda参数用作常量表达式

在C ++中,我试图编写类似于boost-mp11的mp_for_each的内容。但是,虽然mp_for_each总是为给定的mp_list 中的每个T调用提供的函数,但我正在尝试...

回答 2 投票 0


C ++ 17:在.cpp文件中定义静态constexpr成员函数

我有一个静态constexpr成员函数,该函数在.h文件中声明。如果我立即在头文件中定义该函数,则一切运行正常。我一般倾向于定义...

回答 1 投票 0

是否可以制作constexpr树?

我想构建一个constepxr树结构,其中包含固定数目的子树(可能是树也可能不是树)。该结构将能够回答以下问题:“索引处是否存在节点...

回答 1 投票 1

有时会在constexpr上下文中使用的非constexpr变量吗?

请看下面的代码示例:template struct test {static const int value_a = val; const int value_b = val; constexpr int get_value_a()const noexcept {...

回答 3 投票 1

为什么reinterpret_cast不是constexpr?

请考虑以下代码段:static constexpr uint8_t a = 0;静态constexpr const int8_t * b = reinterpret_cast (&a);这无法通过错误进行编译:a ...

回答 1 投票 4

clang ++与g ++ constexpr的差异,带有超出范围的引用

我有constexpr std :: array v1 {0},v2 {0};表现得像大整数。因此,我编写了一个乘法函数来查找数字的乘积。 #include #include

回答 1 投票 0

用C ++创建两个值的并集/交集创建const集的标准方法?

假设我有constexpr std :: set a = {1,2,3}; constexpr std :: set b = {3,4,5};而且我想创建constexpr std :: set c = union(a,b); // {1,2,3,4,5}是...

回答 1 投票 0

如何在assert()和static_assert()之间分配,如果在constexpr上下文中依赖,则依赖?

在C ++ 11 constexpr函数中,不可能使用第二条语句,例如assert()。 static_assert()很好,但是如果该函数被称为“普通”函数,则将无法正常工作。逗号运算符...

回答 2 投票 2

如何快速评估const expr

我一直在尝试在编译时求值的const表达式。但是我玩了一个在编译时执行时看起来非常快的示例。 #include ... ...>

回答 1 投票 8

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