Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using a local clone.
Lazily evaluate static conditions for static if, static assert and template constraints.
e, out bool
- Semantically analyze and then evaluate a static condition at compile time. This is special because short circuit operators &&, || and ?: at the top level are not semantically analyzed if the result of the expression is not necessary.Parameters:
instantiating scope Expression
original expression, for error messages Expression
resulting expression bool
set to true if errors occurred Expressions*
array to store negative clausesReturns:true if evaluates to true
instantiated, const Expression
full, ref uint
- Format a static condition as a tree-like structure, marking failed and bypassed expressions.Parameters:
original expression Expression
instantiated expression Expression
array with negative clauses from
controls whether it shows the full output or only failed parts uint
returns the number of written clausesReturns:formatted string or null if the expressions were null, or if the instantiated expression is not based on the original one