Public API
Namespaces
breeze | The library's top-level namespace. |
Defines
Defines (dump_expression.hpp)
BREEZE_DUMP_EXPRESSION(expression) | 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
|
Defines (assert.hpp)
BREEZE_ASSERT(expression) | BREEZE_ASSERT() is a simple runtime assertion facility. Differently from the standard The code
When In this context, "triggering an assertion" means calling the current assert handler (see
NDEBUG when compiling the "release" versions of a product. Many IDEs do so silently. In fact, NDEBUG (or a logical complement of it, such as _DEBUG ) has become the macro which is usually checked for by your library code to know which version of it (release/debug) you want to link with.
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.
|
Defines (paste.hpp)
BREEZE_PASTE(x,y) | Concatenates the two preprocessing tokens which end the argument
## does, we preferred the shorter word, especially considering that this macro is often invoked within other macro invocations. "Token pasting" is a well-established expression within the C and C++ communities. (A similar comment applies, obviously, to the _AFTER_EXPANSION variant, which has an even longer name.)
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). |
Defines (paste_after_expansion.hpp)
BREEZE_PASTE_AFTER_EXPANSION(x,y) | Applies BREEZE_PASTE() to the result of performing macro replacement on the arguments See BREEZE_PASTE() for the naming rationale. |
Defines (prevent_macro_expansion.hpp)
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
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. |
Defines (stringize.hpp)
BREEZE_STRINGIZE(x) | Expands to a string literal obtained with |
Defines (stringize_after_expansion.hpp)
Stringizes (with |