|breeze||The library's top-level namespace.|
Displays an expression and its value to
A simple macro for quickly dumping a variable or, generally, an expression to
It was born as "DUMP_VARIABLE" but then I immediately found a usage where I wanted to display something like
It's intended that you use this just for quick and dirty checks, and that you remove it after that.
The expression is shown in the form
Asserts that a condition is true.
BREEZE_ASSERT() is a simple runtime assertion facility. Differently from the standard
In this context, "triggering an assertion" means calling the current assert handler (see
We believe, though, that assertions must be left on in the release builds. So we wanted an assert macro decoupled from
About the possibility to throw an exception instead of terminating the program: while critical software will certainly need to terminate immediately in case of a programming error, there are applications which can continue: consider e.g. an editor, which could give the user a chance to save their work before aborting.
Concatenates two preprocessing tokens.
Concatenates the two preprocessing tokens which end the argument
Also, the names "TOKEN_PASTE" and "PASTE_TOKENS" were rejected as, respectively, not verb-based and using plural (which would have been inconsistent in our library).
Concatenates two preprocessing tokens after macro expansion.
Applies BREEZE_PASTE() to the result of performing macro replacement on the arguments
See BREEZE_PASTE() for the naming rationale.
Prevents the expansion of a function-like macro.
The only purpose of this macro is to prevent the expansion of the preceding identifier, in case it is defined as a function-like macro. Any macro would do (in fact, anything which isn't an open paren), but this has a self-documenting name.
Typically used for the identifiers
``` int const m = std::numeric_limits< int >::max BREEZE_PREVENT_MACRO_EXPANSION () ; ```
Note that you can prevent macro substitution by enclosing the offending name in parentheses, but that also inhibits ADL, whereas this macro has absolutely no effect in that regard.
Stringizes preprocessing tokens.
Expands to a string literal obtained with
Stringizes preprocessing tokens after macro expansion.