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

dza*_*ada 7 c++ static-variables constexpr c++11

我知道constexpr 变量可以在编译时使用.例如,对于模板或静态asser.

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

什么是自C++ 11/14引入constexpr之间的区别

constexpr int a = 3;
//AND
static const int a = 3;
Run Code Online (Sandbox Code Playgroud)

谢谢!

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

mas*_*oud 10

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

const static int x = rand();
Run Code Online (Sandbox Code Playgroud)