Configurable options to tweak the global behavior of the library.
|Disables the |
|Disables concept checks in interface methods. More...|
|Enables usage of the "string literal operator template" GNU extension. More...|
|Enables additional assertions and sanity checks to be done by Hana. More...|
|Macro expanding to the major version of the library, i.e. the |
|Macro expanding to the minor version of the library, i.e. the |
|Macro expanding to the patch level of the library, i.e. the |
|Macro expanding to the full version of the library, in hexadecimal representation. More...|
BOOST_HANA_*_ASSERT macro & friends.
When this macro is defined, the
BOOST_HANA_*_ASSERT macro & friends are disabled, i.e. they expand to nothing.
This macro is defined automatically when
NDEBUG is defined. It can also be defined by users before including this header or defined on the command line.
Disables concept checks in interface methods.
When this macro is not defined (the default), tag-dispatched methods will make sure the arguments they are passed are models of the proper concept(s). This can be very helpful in catching programming errors, but it is also slightly less compile-time efficient. You should probably always leave the checks enabled (and hence never define this macro), except perhaps in translation units that are compiled very often but whose code using Hana is modified very rarely.
Enables usage of the "string literal operator template" GNU extension.
That operator is not part of the language yet, but it is supported by both Clang and GCC. This operator allows Hana to provide the nice
_s user-defined literal for creating compile-time strings.
When this macro is not defined, the GNU extension will be not used by Hana. Because this is a non-standard extension, the macro is not defined by default.
Enables additional assertions and sanity checks to be done by Hana.
When this macro is defined (it is not defined by default), additional sanity checks may be done by Hana. These checks may be costly to perform, either in terms of compilation time or in terms of execution time. These checks may help debugging an application during its initial development, but they should not be enabled as part of the normal configuration.
Macro expanding to the full version of the library, in hexadecimal representation.
BOOST_HANA_VERSION expands to an hexadecimal number of the form 0xVVRRPPPP, where
VV is the major version of the library,
RR is the minor version and
PPPP is the patch level. This allows the version of the library to be compared: