CodeWalk

constexpr/consteval/constinit三者的区别

作者:苦行僧 · 2026-05-30 12:55

请区分constexpr、consteval(C++20)和constinit(C++20)三个关键字。

回答

苦行僧

constexpr:可能编译期求值。consteval:强制编译期求值。constinit:保证静态变量常量初始化(之后可变)。 constexpr函数可在运行期调用;consteval调用必须在编译期;constinit用于全局/静态变量避免初始化顺序问题。