1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /*!
- @file
- Defines macros for tracking the version of the library.
- Copyright Louis Dionne 2013-2022
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
- */
- #ifndef BOOST_HANA_VERSION_HPP
- #define BOOST_HANA_VERSION_HPP
- //! @internal
- //! Transforms a (version, revision, patchlevel) triple into a number of the
- //! form 0xVVRRPPPP to allow comparing versions in a normalized way.
- //!
- //! See http://sourceforge.net/p/predef/wiki/VersionNormalization.
- #define BOOST_HANA_CONFIG_VERSION(version, revision, patch) \
- (((version) << 24) + ((revision) << 16) + (patch))
- //! @ingroup group-config
- //! Macro expanding to the major version of the library, i.e. the `x` in `x.y.z`.
- #define BOOST_HANA_MAJOR_VERSION 1
- //! @ingroup group-config
- //! Macro expanding to the minor version of the library, i.e. the `y` in `x.y.z`.
- #define BOOST_HANA_MINOR_VERSION 8
- //! @ingroup group-config
- //! Macro expanding to the patch level of the library, i.e. the `z` in `x.y.z`.
- #define BOOST_HANA_PATCH_VERSION 0
- //! @ingroup group-config
- //! Macro expanding to the full version of the library, in hexadecimal
- //! representation.
- //!
- //! Specifically, `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:
- //! @snippet example/version.cpp main
- //!
- //!
- //! @note
- //! The major, minor and patch versions of the library are also available
- //! individually with the `BOOST_HANA_{MAJOR,MINOR,PATCH}_VERSION` macros.
- #define BOOST_HANA_VERSION \
- BOOST_HANA_CONFIG_VERSION(BOOST_HANA_MAJOR_VERSION, \
- BOOST_HANA_MINOR_VERSION, \
- BOOST_HANA_PATCH_VERSION) \
- /**/
- #endif // !BOOST_HANA_VERSION_HPP
|