c++ - static const 和 constexpr 变量有什么区别?

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

我知道 constexpr variable 可以在编译时使用。 对于模板,或者静态断言。

但是如果我想在没有 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();

关于c++ - static const 和 constexpr 变量有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23538440/

相关文章:

c++ - 具有非数据类型模板参数的类模板特化

c++ - 如何在头文件中使用用户定义的文字?

c++ - 引用一个可能被破坏的静态对象

c - 当我们声明静态变量时,编译器实际上做了什么?

c++ - 登录 HTTP 服务器 c++

c++ - 带分隔符的getline

C++:将成对的类对象插入到映射中

c++ - 检查对象是否声明为 const

c++ - 将成员函数传递给std::thread [duplicate]

php - 为什么第二个静态变量赋值生效,而不是第一个?