[section Versioning] This section describes how the library is prepared for supporting multiple (not backward compatible) changes. [section Template classes] 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 `` header file. At the same time the library provides the `` header file which includes `` 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 `` provide the latest version of the library. To always get version `v1`, one should use header files in ``. The library does not use inline namespaces to work on compilers that do not support them. [endsect] [section Macros] Macros defined by the library are prefixed with `BOOST_METAPARSE_V1_`. For example `BOOST_METAPARSE_V1_STRING`. It is defined in the `` header file. The library provides the `` 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`) [endsect] [endsect]