MPL11
 All Classes Namespaces Files Typedefs Macros Groups Pages
Macros
config.hpp File Reference

Manages configurable options of the library and defines utility macros. More...

Go to the source code of this file.

Macros

#define BOOST_MPL11_NO_ASSERTIONS
 When defined, optional assertions and consistency checks are not performed by the library. More...
 
#define BOOST_MPL11_NO_REWRITE_RULES
 When defined, rewrite rules are disabled. More...
 
#define BOOST_MPL11_IF_DOXYGEN(...)   __VA_ARGS__
 Macro expanding to its argument(s) when generating the documentation with Doxygen and to nothing otherwise.
 
#define BOOST_MPL11_DOXYGEN_ALIAS(NAME,...)   struct NAME : __VA_ARGS__ { }
 Macro expanding to a struct when generating the documentation and to an alias otherwise. More...
 
#define BOOST_MPL11_IF_ASSERTIONS(...)
 Macro expanding to its argument(s) if BOOST_MPL11_NO_ASSERTIONS is not defined, and to nothing otherwise.
 
#define BOOST_MPL11_CLANG_FLIP_BUG
 Clang-3.5 has a bug causing flip to fail on binary metafunctions.
 
#define BOOST_MPL11_GCC_PACK_EXPANSION_BUG
 GCC-4.9 has a bug making it an error to expand parameter packs in some circumstances.
 

Detailed Description

Manages configurable options of the library and defines utility macros.

Macro Definition Documentation

#define BOOST_MPL11_DOXYGEN_ALIAS (   NAME,
  ... 
)    struct NAME : __VA_ARGS__ { }

Macro expanding to a struct when generating the documentation and to an alias otherwise.

This is required because Doxygen handles template aliases (and aliases in general) poorly (or maybe I just can't get them to work).

#define BOOST_MPL11_NO_ASSERTIONS

When defined, optional assertions and consistency checks are not performed by the library.

Assertions can have a negative impact on compile-time performance; they can be disabled if that is a problem. However, it is strongly recommended to enable them when debugging template code.

#define BOOST_MPL11_NO_REWRITE_RULES

When defined, rewrite rules are disabled.

Disabling rewrite rules can have a negative impact on compile-time performance; this is mainly meant as a way to make sure rewrite rules do not change the semantics of metaprograms.