静态const和constexpr变量有什么区别?

时间:2014-05-08 09:56:33

标签: c++ c++11 static-variables constexpr

我了解在编译时可以使用constexpr 变量。 例如,对于模板或静态asser。

但如果我想在没有constexpr的情况下这样做,我可以使用static const

自C ++ 11/14引入constexpr以来

之间的区别是什么
constexpr int a = 3;
//AND
static const int a = 3;

谢谢!

另一种看待这个问题的方法是我应该使用哪种?

1 个答案:

答案 0 :(得分:10)

我知道的主要区别是,constexpr的值必须在编译时知道,而const static可以在运行时分配。

const static int x = rand();