### Version definition macros

##### `BOOST_VERSION_NUMBER`

    BOOST_VERSION_NUMBER(major,minor,patch)

Defines standard version numbers, with these properties:

- Decimal base whole numbers in the range [0,1000000000). The number range is designed to allow for a (2,2,5) triplet. Which fits within a 32 bit value.
- The `major` number can be in the [0,99] range.
- The `minor` number can be in the [0,99] range.
- The `patch` number can be in the [0,99999] range.
- Values can be specified in any base. As the defined value is an constant expression.
- Value can be directly used in both preprocessor and compiler expressions for comparison to other similarly defined values.
- The implementation enforces the individual ranges for the major, minor, and patch numbers. And values over the ranges are truncated (modulo).

##### `BOOST_PREDEF_MAKE_..` macros

These set of macros decompose common vendor version number macros which are composed version, revision, and patch digits. The naming convention indicates:

- The base of the specified version number. "`BOOST_PREDEF_MAKE_0X`" for hexadecimal digits, and "`BOOST_PREDEF_MAKE_10`" for decimal digits.
- The format of the vendor version number. Where "`V`" indicates the version digits, "`R`" indicates the revision digits, "`P`" indicates the patch digits, and "`0`" indicates an ignored digit.

Macros are:

`BOOST_PREDEF_MAKE_0X_VRP(V)`

`BOOST_PREDEF_MAKE_0X_VVRP(V)`

`BOOST_PREDEF_MAKE_0X_VRPP(V)`

`BOOST_PREDEF_MAKE_0X_VVRR(V)`

`BOOST_PREDEF_MAKE_0X_VRRPPPP(V)`

`BOOST_PREDEF_MAKE_0X_VVRRP(V)`

`BOOST_PREDEF_MAKE_0X_VRRPP000(V)`

`BOOST_PREDEF_MAKE_0X_VVRRPP(V)`

`BOOST_PREDEF_MAKE_10_VPPP(V)`

`BOOST_PREDEF_MAKE_10_VRP(V)`

`BOOST_PREDEF_MAKE_10_VRP000(V)`

`BOOST_PREDEF_MAKE_10_VRPP(V)`

`BOOST_PREDEF_MAKE_10_VRR(V)`

`BOOST_PREDEF_MAKE_10_VRRPP(V)`

`BOOST_PREDEF_MAKE_10_VRR000(V)`

`BOOST_PREDEF_MAKE_10_VV00(V)`

`BOOST_PREDEF_MAKE_10_VVRR(V)`

`BOOST_PREDEF_MAKE_10_VVRRPP(V)`

`BOOST_PREDEF_MAKE_10_VVRR0PP00(V)`

`BOOST_PREDEF_MAKE_10_VVRR0PPPP(V)`

`BOOST_PREDEF_MAKE_10_VVRR00PP00(V)`

##### `BOOST_PREDEF_MAKE_*..` date macros

Date decomposition macros return a date in the relative to the 1970 Epoch date. If the month is not available, January 1st is used as the month and day. If the day is not available, but the month is, the 1st of the month is used as the day.

`BOOST_PREDEF_MAKE_DATE(Y,M,D)`

`BOOST_PREDEF_MAKE_YYYYMMDD(V)`

`BOOST_PREDEF_MAKE_YYYY(V)`

`BOOST_PREDEF_MAKE_YYYYMM(V)`