12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- [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
- `<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.
- [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
- `<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`)
- [endsect]
- [endsect]
|