技术栈

consteval

ComputerInBook
7 天前
开发语言·c++·constexpr·consteval
C++ 关键字 constexpr 和 consteval 之注意事项C++ 支持两种不可变性概念(即状态不可变的对象):• const:其大致含义是“我承诺不会更改此值”。它主要用于定义接口,以便在通过指针和引用将数据传递给函数时,无需担心数据会被修改。编译器会强制执行由 const 所作的这一承诺。const 变量的值可以在运行时计算得出。 • constexpr:其大致含义是“在编译时进行求值”。它主要用于定义常量,以便将数据存放在只读内存中(从而降低数据被破坏的风险),同时也旨在提升性能。constexpr 变量的值必须由编译器在编译时计算得出。
Mr_WangAndy
6 个月前
c++20·c++40周年·consteval·constinit
C++20新特性_consteval 和 constinit在 C++11 引入 constexpr 之后,编译期计算(Compile-time Computation)的大门被彻底打开。但是,constexpr 有时过于“宽容”——它既可以在编译期运行,也可以在运行期运行,这导致了语义上的模糊。 为了更精准地控制编译期行为,C++20 引入了两个新的关键字:consteval 和 constinit。它们分别解决了“强制编译期执行”和“强制编译期初始化”这两个痛点。
我是有底线的