14得票1回答
使用指针进行constexpr初始化

我试图使用一个指向int的const对象来初始化一个constexpr声明。同时,我还尝试使用一个非const类型的对象来定义一个对象。 代码:#include <iostream> int main() { constexpr int *np = nullptr; // np...

8得票5回答
在编译时生成具有最小开销的函数调度程序

我正在尝试使用编译时生成的数组来实现快速函数调度器,以便在运行时使用O(1)。这里是一些代码以澄清: template<int i> void f() { // do stuff } // specialized for every managed integer...

15得票3回答
什么时候应该在C++中使用字面值类?

有人能告诉我在 C++ 中何时需要使用 文字类 吗? 我对于 constexpr 构造函数和成员有些困惑,并且看不出其作用。我希望能看到一些实际用途。 另外,我想知道一个 set 成员函数是否需要是 constexpr,也就是说:constexpr void set_num(int a) {...

17得票2回答
静态常量获取器中,使用inline还是constexpr?

在下面的代码中,哪个函数可以为外部使用提供最佳优化?为什么?C++ 2011是否允许“Version 4”? 在下面的代码中,哪个函数可以为外部使用提供最佳优化?为什么?C++ 2011是否允许“Version 4”?template<unsigned int TDIM> cla...

16得票1回答
使用派生类的静态constexpr数据成员来初始化基类的静态constexpr数据成员

Consider the following code: template<typename T> struct S { static constexpr int bar = T::foo; }; struct U: S<U> { static constexpr ...

9得票2回答
C++ constexpr:在编译时计算std数组

我希望将一个“布尔数组”转换成整数序列。因此,我需要在编译时计算一个std :: array。 以下是我的代码。 #include <array> template<typename InputIt, typename T > inline constexpr t...

9得票3回答
如何告诉 static_assert constexpr 函数参数是 const?

我有一个constexpr函数,大致如下: constexpr int foo(int bar) { static_assert(bar>arbitrary_number, "Use a lower number please"); return something_co...

139得票3回答
Constexpr与宏的区别

我应该在哪里使用宏,在哪里使用constexpr?它们不是基本上一样吗?#define MAX_HEIGHT 720 对抗constexpr unsigned int max_height = 720;

19得票4回答
如何有效地调试constexpr函数?

在C++14中,我们获得了升级版的constexpr,这意味着现在可以使用循环、if语句和switch语句。递归在C++11中已经是可能的。 我知道constexpr函数/代码应该相当简单,但仍然会有一个问题:如何有效地调试它? 即使在《C++程序设计语言第四版》中,也有一句话说调试可能很...

9得票1回答
GCC无法报告constexpr lambda调用的错误形式

以下是两个关于未定义行为的测试用例,以IIFE(立即调用的Lambda表达式)形式表示: constexpr auto test3 = []{ int* p{}; { int x{}; p = &x; } retu...