1
2
3
4
5
6
7
8
9
10
11
static constexpr QEvent::Type PingEventType = QEvent::Type(QEvent::User + 2);
const并未区分出编译期常量和运行期常量
constexpr限定在了编译期常量
All constexpr variables are const
const表示的是read only的语义,constexpr才是名符其实的常量
在 C 里面,const 很明确只有「只读」一个语义,不会混淆。C++ 在此基础上增加了「常量」语义,也由 const 关键字来承担,引出来一些奇怪的问题。C++11 把「常量」语义拆出来,交给新引入的 constexpr 关键字。
参考
https://learn.microsoft.com/en-us/cpp/cpp/constexpr-cpp?view=msvc-170
欢迎评论交流