constexpr 相关问题

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

如果有可能使用std :: endian,否则可以做其他事情吗?

自C ++ 20起,我们可以拥有:constexpr bool is_little_endian = std :: endian :: native == std :: endian :: little;我希望有代码(如果可用)执行此操作,否则执行运行时检测。 ...

回答 1 投票 6

我可以在C ++ 20的类型别名中使用条件吗?

随着C ++的扩展,融合了普通计算和类型计算,我想知道是否有办法进行类似的工作?静态常量int x = 47;使用T =(x%2)? int:双精度我知道我可以...

回答 1 投票 0

如果可用,是否可以使用std :: endian,否则可以做其他事情吗?

自C ++ 20起,我们可以拥有:constexpr bool is_little_endian = std :: endian :: native == std :: endian :: little;我希望有代码(如果可用)执行此操作,否则执行运行时检测。 ...

回答 1 投票 3

如何从预处理程序#if指令中调用constexpr函数?

我想将宏定义为字符串,然后在编译时包含基于字符串比较的代码:#include #include constexpr bool strings_equal(char const ...

回答 1 投票 1

您如何检测通话结果是否有效

我正在尝试创建一个特征,以检测带有2个参数调用的类型Apply的结果。我希望代码中的static_assert不会被击中,因为apply的结果是...

回答 1 投票 0

在模板中使用“普通” constexpr函数参数

假设我有这个功能:constexpr void foo(size_t x){}这个模板:template class bar;可以使用...

回答 1 投票 0

GNU const / pure属性vs constexpr

GNU C和C ++提供const和纯函数属性。从gnu在线文档(重点是我的):在GNU C和C ++中,您可以使用函数属性来指定某些函数属性,这些属性可能......>

回答 2 投票 3


我如何将constexpr值传递给采用const引用的CUDA设备端函数?

请考虑以下代码:template __host__ __device__ int foo1(const T&x);模板 __host__ __device__ int foo2(T x);这两个函数对应于...

回答 2 投票 1

为什么std :: swap在C ++ 20之前没有标记为constexpr?

在C ++ 20中,std :: swap成为constexpr函数。我知道标准库在标记constexpr方面确实落后于该语言,但是到2017年, 几乎是...

回答 2 投票 4

如何推断C ++ 11中的模板参数类型?

我正在尝试编写一个强制通过constexpr求值的函数。模板。我写了这个,但它仅适用于int(请注意,使用GCC会产生递归深度错误):#include

回答 2 投票 1

如何推断模板参数类型?

我正在尝试编写一个强制通过constexpr求值的函数。模板。我写了这个,但它仅适用于int(请注意,使用GCC会产生递归深度错误):#include

回答 1 投票 0

如何在C ++中实现两个向量的编译时积

两个大小为'N'的向量的标量积定义为SP(a,b)= a_1 * b_1 + ... + a_N * b_N。编译时整数向量定义为:template struct Vector;函数乘积...

回答 2 投票 0

过度渴望使用constexpr的C ++联合零初始化

下面是带标签的联合模板“ Storage”的简化示例,它可以假定联合中包含两种类型的L和R,以及指示它们中的哪一个被存储的bool。该实例使用两个...

回答 1 投票 1

Constexpr可构造函数对象

我有一个与此问题有些类似的问题,但是对于一个更有限的情况,我认为应该可以以某种方式实现:我想从多个...]构造一个函数调用的静态constexpr数组。] >> [[

回答 2 投票 3

可能的constexpr函数错误?

以下代码是否正确使用了constexpr函数?它实际上试图以各种方式访问 静态constexpr成员变量_size。使用g ++编译时不会出现问题,但是失败...

回答 1 投票 3

MSVC在常量表达式中将基本类型转换为派生类型时无法编译

代码:#include 模板 类array_iterator_base {受保护:value_type * ptr; public:constexpr array_iterator_base():...

回答 1 投票 1

通过引用调用`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

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