我知道constexpr
变量可以在编译时使用,例如用于模板或静态断言。
但是如果我不想使用constexpr
,我也可以使用static const
。
自从C++11/14引入了constexpr
,它们之间的区别是什么?
constexpr int a = 3;
//AND
static const int a = 3;
谢谢!
看待这个问题的另一种方式是哪一个应该使用?
我知道constexpr
变量可以在编译时使用,例如用于模板或静态断言。
但是如果我不想使用constexpr
,我也可以使用static const
。
自从C++11/14引入了constexpr
,它们之间的区别是什么?
constexpr int a = 3;
//AND
static const int a = 3;
谢谢!
看待这个问题的另一种方式是哪一个应该使用?
我知道的主要区别是,constexpr
的值必须在编译时已知,而 const static
可以在运行时分配。
const static int x = rand();
constexpr
也适用于非int
类型。 - Kerrek SBconst
也是如此。 - R. Martinho Fernandesstruct Foo { static const double x = 1.5; };
? - Kerrek SB