constexpr是C ++ 11中引入的修饰符,它通知编译器函数或变量的值是已知的,或者可以在编译时计算。因此,它可以在不可能的地方用作常数。
我正在尝试使用模板元编程,constexpr以及if constexpr,并提出了3种不同的方法来执行N递归/ N因子运算。这三个例子都是我所拥有的...
在以下代码中:struct test {struct Data {};静态constexpr const数据data1 {};静态constexpr const数据data2 {};静态constexpr const Data * pdata1 =&data1; ...
我有一个函数,需要一个多维矢量,并且需要将深度(或维数)作为模板参数传递。我想写的不是硬编码此值,而是...
使用全局std :: array引用作为模板参数时如何简单地使用参数?
这在C ++ 17中有效:模板 &ARRAY>类Foo {}; constexpr std :: array A {1,2,3}; void bar(){Foo <3,A> foo_a; }因此...
如果我有constexpr函数,是否应该同时进行运行时验证和编译时验证?如果只有一个编译时检查static_assert,则该函数将不会是...
在C ++ 17中,像这样声明全局常量之间有什么区别:名称空间ns {static constexpr const auto global_variable = 47; }同时指定const修饰符,以及:...
我有一个项目的一堆测试,这些测试最初是使用Gtest编写的,但是从那以后,我将它们移到了Microsoft的CppUnitTestFramework中。为了避免必须重写所有测试,我...
是错误的,我按照constexpr bool {}的名义写了一些东西;尽管GCC和Clang拒绝了这一点,但MSVC还是很乐意对其进行编译(请参阅Godbolt)。据我了解,函数(和...
据我所知,传统的字符数组函数,例如strlen,strstr等都由C-标准定义,并且由于constexpr是C ++ 11,因此未使用它们声明。但是,std :: ...
在C ++ 14及更高版本中,成员函数的constexpr不再暗示const。结构值{int i = 5; constexpr bool not_five()//需要const编译{return this-> i!...
我正在尝试修复一些库代码,其中最小化的最低版本如下所示:#include template ...
我想在C ++ 17的编译时将整数转换为字符串文字。我使用了这个完美的解决方案。无论如何,此解决方案的问题是我无法分配...
一次将字符串文字常量定义为char const *和wchar const *
由于要使用的域的限制,我需要将字符串文字都定义为char const *和wchar const *,例如:constexpr auto C_VAR_NAME_1 =“ MY_VAR_NAME_1”; constexpr ...
考虑此代码:#include static int x = 0; const uintptr_t算术(){静态constexpr uintptr_t结果=(((uintptr_t)&x)+ 1u;返回结果; } const uintptr_t ...
std :: span的所有构造函数都声明为constexpr,但是我似乎无法让它们在constexpr上下文中正常工作。取消注释以下任何constexpr都将导致编译...
假设我有一个由引擎参数化的结构模板S:template struct S;我有两个引擎:一个带有constexpr成员函数size()的“静态”引擎,和一个“ ...
根据https://docs.microsoft.com/zh-cn/cpp/cpp/constexpr-cpp?view=vs-2019“,constexpr表示该值或返回值是恒定的,如果可能,则为在编译时进行计算。” ...