00001 /* 00002 Copyright Rene Rivera 2005, 2008-2013 00003 Distributed under the Boost Software License, Version 1.0. 00004 (See accompanying file LICENSE_1_0.txt or copy at 00005 http://www.boost.org/LICENSE_1_0.txt) 00006 */ 00007 00008 #ifndef BOOST_PREDEF_VERSION_NUMBER_H 00009 #define BOOST_PREDEF_VERSION_NUMBER_H 00010 00011 /*` 00012 [heading `BOOST_VERSION_NUMBER`] 00013 00014 `` 00015 BOOST_VERSION_NUMBER(major,minor,patch) 00016 `` 00017 00018 Defines standard version numbers, with these properties: 00019 00020 * Decimal base whole numbers in the range \[0,1000000000). 00021 The number range is designed to allow for a (2,2,5) triplet. 00022 Which fits within a 32 bit value. 00023 * The `major` number can be in the \[0,99\] range. 00024 * The `minor` number can be in the \[0,99\] range. 00025 * The `patch` number can be in the \[0,99999\] range. 00026 * Values can be specified in any base. As the defined value 00027 is an constant expression. 00028 * Value can be directly used in both preprocessor and compiler 00029 expressions for comparison to other similarly defined values. 00030 * The implementation enforces the individual ranges for the 00031 major, minor, and patch numbers. And values over the ranges 00032 are truncated (modulo). 00033 00034 */ 00035 #define BOOST_VERSION_NUMBER(major,minor,patch) \ 00036 ( (((major)%100)*10000000) + (((minor)%100)*100000) + ((patch)%100000) ) 00037 00038 #define BOOST_VERSION_NUMBER_MAX \ 00039 BOOST_VERSION_NUMBER(99,99,99999) 00040 00041 #define BOOST_VERSION_NUMBER_ZERO \ 00042 BOOST_VERSION_NUMBER(0,0,0) 00043 00044 #define BOOST_VERSION_NUMBER_MIN \ 00045 BOOST_VERSION_NUMBER(0,0,1) 00046 00047 #define BOOST_VERSION_NUMBER_AVAILABLE \ 00048 BOOST_VERSION_NUMBER_MIN 00049 00050 #define BOOST_VERSION_NUMBER_NOT_AVAILABLE \ 00051 BOOST_VERSION_NUMBER_ZERO 00052 00053 #endif