Boost
C++ Libraries
...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
This is an older version of Boost and was released in 2023. The current version is 1.89.0.
This section describes how the library is prepared for supporting multiple (not backward compatible) changes.
The elements of the library are defined in the boost::metaparse::v1 namespace.
For example the one_char
class is boost::metaparse::v1::one_char
and is available after including the <boost/metaparse/v1/one_char.hpp>
header file.
At the same time the library provides the <boost/metaparse/one_char.hpp>
header file which includes <boost/metaparse/v1/one_char.hpp>
and contains the following:
namespace boost { namespace metaparse { using v1::one_char; } }
This makes it possible to use one_char
as boost::metaparse::one_char.
Future versions of the library may provide other namespaces (eg. v2). The header files in <boost/metaparse/...> provide the latest version of the
library. To always get version v1,
one should use header files in <boost/metaparse/v1/...>.
The library does not use inline namespaces to work on compilers that do not support them.
Macros defined by the library are prefixed with BOOST_METAPARSE_V1_.
For example BOOST_METAPARSE_V1_STRING.
It is defined in the <boost/metaparse/v1/string.hpp>
header file. The library provides the <boost/metaparse/string.hpp>
header file as well, which includes the definition of this macro and provides
the following definition:
#define BOOST_METAPARSE_STRING BOOST_METAPARSE_V1_STRING
This makes it possible to use the macro as BOOST_METAPARSE_STRING.
Future versions of the library may define other versions of this macro (eg.
BOOST_METAPARSE_V2_STRING).
BOOST_METAPARSE_STRING will
refer to the latest version.
This versioning does not affect macros that may be overridden by the code
using the library. (eg. BOOST_METAPARSE_LIMIT_STRING_SIZE)