Both asm-declaration and static_assert-declaration are now uniformly represented as phased evaluation of the generalized expressions ipr::Asm and ipr::Static_assert.
This unified description comes at the cost of an indirection going from a Directive to an Expr. However, it allows for other type expressions (e.g. parameterized prolongation s) to be described in the same scheme. Furthermore, an if constexpr and an if consteval are now just phased evaluation of ordinary if-statement. Similarly, static initialization can also be described as a phased evaluation.
Both asm-declaration and static_assert-declaration are now uniformly represented as phased evaluation of the generalized expressions
ipr::Asm
andipr::Static_assert
.This unified description comes at the cost of an indirection going from a
Directive
to anExpr
. However, it allows for other type expressions (e.g. parameterized prolongation s) to be described in the same scheme. Furthermore, anif constexpr
and anif consteval
are now just phased evaluation of ordinary if-statement. Similarly, static initialization can also be described as a phased evaluation.