96得票2回答
在C++中,“poison a function”是什么意思?

在 Scott Schurr 的演讲 "Introducing constexpr" at CppCon 的最后,他问道:“有没有一种方法可以使函数失效?”然后他解释说(虽然是非标准的方式)可以通过以下方式实现: 在 constexpr 函数中放置 throw 声明一个未解决的 exter...

94得票2回答
constexpr与static const:哪个更好?

在函数和类作用域下,用于定义像以下这样的整型编译时常量的语法,哪种语法最好? static const int kMagic = 64; // (1) constexpr int kMagic = 64; // (2) (1)同样适用于C++98/03编译器,而(2)至少需要C +...

93得票7回答
如何声明constexpr extern?

声明一个变量为extern constexpr并在另一个文件中定义它是否可行? 我尝试过,但编译器会报错: constexpr变量“i”的声明不是一个定义 在.h文件中:extern constexpr int i; 在 .cpp 文件中:constexpr int i = 10;

92得票2回答
在头文件中声明constexpr类并在单独的.cpp文件中定义,这种做法可行吗?

我有一个类Dimension,像我所有的类一样,我在文件 Dimension.h 中定义它:class Dimension { public: constexpr Dimension() noexcept; constexpr Dimension(int w, int h)...

89得票3回答
consteval函数是否允许依赖于函数参数的模板参数?

在C++17中,这段代码是非法的:constexpr int foo(int i) { return std::integral_constant<int, i>::value; } 那是因为即使foo可以在编译时评估,编译器仍然需要生成指令以在运行时执行它,从而使模板实例...

82得票9回答
在C++11中创建一个包含N个元素的constexpr数组

你好,我正在学习C++11,我想知道如何创建一个constexpr 0到n的数组,例如:n = 5; int array[] = {0 ... n}; 因此数组可以是{0, 1, 2, 3, 4, 5}

80得票1回答
在C++17中,静态constexpr变量和静态inline变量有什么区别?

在C++17中,我们可以使用内联变量。 它们的一个用途是在类中定义常量字段。 那么这两个常量定义有什么区别呢: class MyClass { static constexpr int myFirstVar = 10; static const inline int m...

80得票6回答
类内实际静态常量,使用枚举类型还是constexpr?

Great! I'm happy to help. What text would you like me to translate? class C { public: enum {SOME_VALUE=27}; }; 那么我们可以在代码中使用SOME_VALUE作为编译时常量,并...

72得票2回答
constexpr函数何时在编译时进行评估?

既然可能会在运行时调用声明为constexpr的函数,编译器根据什么标准决定在编译时还是运行时计算它呢?template<typename base_t, typename expo_t> constexpr base_t POW(base_t base, expo_t expo)...

72得票3回答
针对constexpr if的等效三元运算符是什么?

也许我错过了什么,但我找不到任何提示:在C++17中是否有等同于constexpr-if的constexpr三元运算符?template<typename Mode> class BusAddress { public: explicit constexpr BusAddr...