Another cleanup pass.. And a first pass at documentation.

git-svn-id: http://svn.boost.org/svn/boost/sandbox/predef@75741 b8fc166d-592f-0410-95f2-cb63ce0dd405
This commit is contained in:
Rene Rivera
2011-11-30 05:54:23 +00:00
parent 5513bc2b02
commit 45df001094
99 changed files with 3214 additions and 129 deletions

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_BORLAND`]
[@http://en.wikipedia.org/wiki/XXX Borland] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_BORLAND BOOST_VERSION_NUMBER(0,0,0)
#if defined(__BORLANDC__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -13,6 +13,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_CXX_COMO BOOST_VERSION_NUMBER(0,0,0)
/*`
[heading `BOOST_CXX_COMO`]
[@http://en.wikipedia.org/wiki/XXX Comeau] compiler.
Version number available as major, minor, and patch.
*/
#if defined(__COMO__)
#undef BOOST_CXX_COMO
#define BOOST_CXX_COMO BOOST_PREDEF_MAKE_F_F_FF(__COMO_VERSION__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_DEC`]
[@http://en.wikipedia.org/wiki/XXX Compaq DEC] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_DEC BOOST_VERSION_NUMBER(0,0,0)
#if defined(__DECC)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,12 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_CYGWIN`]
[@http://en.wikipedia.org/wiki/XXX Cygwin] compiler.
*/
#define BOOST_CXX_CYGWIN BOOST_VERSION_NUMBER(0,0,0)
#if defined(__CYGWIN__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_DIAB`]
[@http://en.wikipedia.org/wiki/XXX Diab] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_DIAB BOOST_VERSION_NUMBER(0,0,0)
#if defined(__DCC__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_DMC`]
[@http://en.wikipedia.org/wiki/XXX Digital Mars] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_DMC BOOST_VERSION_NUMBER(0,0,0)
#if defined(__DMC__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_SYSC`]
[@http://en.wikipedia.org/wiki/XXX Dignus SysC] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_SYSC BOOST_VERSION_NUMBER(0,0,0)
#if defined(__SYSC__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_EDG`]
[@http://en.wikipedia.org/wiki/XXX EDG] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_EDG BOOST_VERSION_NUMBER(0,0,0)
#if defined(__EDG__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_PATH`]
[@http://en.wikipedia.org/wiki/XXX Ekopath] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_PATH BOOST_VERSION_NUMBER(0,0,0)
#if defined(__PATHCC__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_GNUC`]
[@http://en.wikipedia.org/wiki/XXX Gnu C/C++] compiler.
Version number available as major, minor, and patch (if available).
*/
#define BOOST_CXX_GNUC BOOST_VERSION_NUMBER(0,0,0)
#if defined(__GNUC__)
@ -25,6 +32,6 @@ http://www.boost.org/LICENSE_1_0.txt)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_GNUC,"GNUC")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_GNUC,"Gnu C/C++")
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,12 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_GCCXML`]
[@http://en.wikipedia.org/wiki/XXX GCC XML] compiler.
*/
#define BOOST_CXX_GCCXML BOOST_VERSION_NUMBER(0,0,0)
#if defined(__GCCXML__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_GHS`]
[@http://en.wikipedia.org/wiki/XXX Green Hills] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_GHS BOOST_VERSION_NUMBER(0,0,0)
#if defined(__ghs)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_HPACC`]
[@http://en.wikipedia.org/wiki/XXX HP ACC] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_HPACC BOOST_VERSION_NUMBER(0,0,0)
#if defined(__HP_aCC)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_IAR`]
[@http://en.wikipedia.org/wiki/XXX IAR] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_IAR BOOST_VERSION_NUMBER(0,0,0)
#if defined(__IAR_SYSTEMS_ICC__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_IBM`]
[@http://en.wikipedia.org/wiki/XXX Iternational Business Mchines] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_IBM BOOST_VERSION_NUMBER(0,0,0)
#if defined(__IBMCPP__) || defined(__xlC__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_INTEL`]
[@http://en.wikipedia.org/wiki/XXX Intel] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_INTEL BOOST_VERSION_NUMBER(0,0,0)
#if defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || \

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_KCC`]
[@http://en.wikipedia.org/wiki/XXX Kai] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_KCC BOOST_VERSION_NUMBER(0,0,0)
#if defined(__KCC)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,12 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_LLVM`]
[@http://en.wikipedia.org/wiki/XXX LLVM] compiler.
*/
#define BOOST_CXX_LLVM BOOST_VERSION_NUMBER(0,0,0)
#if defined(__llvm__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,12 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_HIGHC`]
[@http://en.wikipedia.org/wiki/XXX Metaware HighC] compiler.
*/
#define BOOST_CXX_HIGHC BOOST_VERSION_NUMBER(0,0,0)
#if defined(__HIGHC__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,30 +11,23 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_MWERKS`]
[@http://en.wikipedia.org/wiki/XXX Metrowerks] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(0,0,0)
#if defined(__MWERKS__)
#undef BOOST_CXX_MWERKS
#if __MWERKS__ == 0x3000
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(8,0,0)
#elif __MWERKS__ == 0x3001
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(8,1,0)
#elif __MWERKS__ == 0x3002
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(8,2,0)
#elif __MWERKS__ == 0x3003
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(8,3,0)
#elif __MWERKS__ == 0x3200
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(9,0,0)
#elif __MWERKS__ == 0x3201
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(9,1,0)
#elif __MWERKS__ == 0x3202
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(9,2,0)
#elif __MWERKS__ == 0x3204 // note the "skip": 04->9.3
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(9,3,0)
#elif __MWERKS__ == 0x3205
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(9,4,0)
#elif __MWERKS__ == 0x3206
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(9,5,0)
#if (__MWERKS__ >= 0x3000) && (__MWERKS__ < 0x3200)
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(8,(__MWERKS__)%100,0)
#elif (__MWERKS__ >= 0x3200) && (__MWERKS__ <= 0x3202)
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(9,(__MWERKS__)%100,0)
#elif (__MWERKS__ >= 0x3204) && (__MWERKS__ < 0x3300) // note the "skip": 04->9.3
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(9,(__MWERKS__)%100-1,0)
#else
#define BOOST_CXX_MWERKS BOOST_PREDEF_MAKE_F_F_FF(__MWERKS__)
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,12 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_MRI`]
[@http://en.wikipedia.org/wiki/XXX Microtec] compiler.
*/
#define BOOST_CXX_MRI BOOST_VERSION_NUMBER(0,0,0)
#if defined(_MRI)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_MINGW`]
[@http://en.wikipedia.org/wiki/XXX MinGW] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_MINGW BOOST_VERSION_NUMBER(0,0,0)
#if defined(__MINGW32__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_MPW`]
[@http://en.wikipedia.org/wiki/XXX MPW] compiler.
Version number available as major, and minor.
*/
#define BOOST_CXX_MPW BOOST_VERSION_NUMBER(0,0,0)
#if defined(__MRC__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_PALM`]
[@http://en.wikipedia.org/wiki/XXX Palm] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_PALM BOOST_VERSION_NUMBER(0,0,0)
#if defined(_PACC_VER)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,12 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_PGI`]
[@http://en.wikipedia.org/wiki/XXX PGI] compiler.
*/
#define BOOST_CXX_PGI BOOST_VERSION_NUMBER(0,0,0)
#if defined(__PGI)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_SGI`]
[@http://en.wikipedia.org/wiki/XXX SGI Mips-pro] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_SGI BOOST_VERSION_NUMBER(0,0,0)
#if defined(__sgi)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_SUNPRO`]
[@http://en.wikipedia.org/wiki/XXX Sun Pro] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_SUNPRO BOOST_VERSION_NUMBER(0,0,0)
#if defined(__SUNPRO_CC)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,12 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_TENDRA`]
[@http://en.wikipedia.org/wiki/XXX Tendra] compiler.
*/
#define BOOST_CXX_TENDRA BOOST_VERSION_NUMBER(0,0,0)
#if defined(__TenDRA__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_MSVC`]
[@http://en.wikipedia.org/wiki/XXX Microsoft Visual C/C++] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_MSVC BOOST_VERSION_NUMBER(0,0,0)
#if defined(_MSC_VER)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_WATCOM`]
[@http://en.wikipedia.org/wiki/XXX Watcom] compiler.
Version number available as major, and minor.
*/
#define BOOST_CXX_WATCOM BOOST_VERSION_NUMBER(0,0,0)
#if defined(__WATCOMC__)

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_LANGUAGE_OBJC`]
Objective C language.
[@http://en.wikipedia.org/wiki/Objective-C Objective-C] language.
*/
#define BOOST_LANGUAGE_OBJC BOOST_VERSION_NUMBER(0,0,0)
@ -25,6 +25,6 @@ Objective C language.
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LANGUAGE_OBJC,"Objective C")
BOOST_PREDEF_DECLARE_TEST(BOOST_LANGUAGE_OBJC,"Objective-C")
#endif

View File

@ -14,8 +14,8 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_LANGUAGE_STDC`]
Standard C language. If available, the year of the standard
is detected as 0.0.YYYY.
[@http://en.wikipedia.org/wiki/C_(programming_language) Standard C] language.
If available, the year of the standard is detected as 0.0.YYYY.
*/
#define BOOST_LANGUAGE_STDC BOOST_VERSION_NUMBER(0,0,0)

View File

@ -14,8 +14,19 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_LANGUAGE_STDCPP`]
Standard C++ language. If available, the year of the standard
is detected as 0.0.YYYY.
[@http://en.wikipedia.org/wiki/C%2B%2B Standard C++] language.
If available, the year of the standard is detected as 0.0.YYYY.
Because of the way the C++ standardization process works the
defined version year will not be the commonly known year standard.
Specifically the defined versions will be:
[table Detected Version Number vs. C++ Standard Year
[[Detected Version Number] [Standard Year] [C++ Standard]]
[[0.0.1997] [1998] [ISO/IEC 14882:1998]]
[[0.0.?] [2003] [ISO/IEC 14882:2003]]
[[0.0.?] [2007] [ISO/IEC TR 19768:2007]]
[[0.0.2011] [2011] [ISO/IEC 14882:2011]]
]
*/
#define BOOST_LANGUAGE_STDCPP BOOST_VERSION_NUMBER(0,0,0)
@ -35,8 +46,8 @@ BOOST_PREDEF_DECLARE_TEST(BOOST_LANGUAGE_STDCPP,"Standard C++")
/*`
[heading `BOOST_LANGUAGE_STDCPPCLI`]
Standard C++/CLI language. If available, the year of the standard
is detected as 0.0.YYYY.
[@http://en.wikipedia.org/wiki/C%2B%2B/CLI Standard C++/CLI] language.
If available, the year of the standard is detected as 0.0.YYYY.
*/
#define BOOST_LANGUAGE_STDCPPCLI BOOST_VERSION_NUMBER(0,0,0)
@ -56,7 +67,7 @@ BOOST_PREDEF_DECLARE_TEST(BOOST_LANGUAGE_STDCPPCLI,"Standard C++/CLI")
/*`
[heading `BOOST_LANGUAGE_STDECPP`]
Standard Embedded C++ language.
[@http://en.wikipedia.org/wiki/Embedded_C%2B%2B Standard Embedded C++] language.
*/
#define BOOST_LANGUAGE_STDECPP BOOST_VERSION_NUMBER(0,0,0)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -17,6 +17,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <cstddef>
#endif
/*`
[heading `BOOST_LIBC_GNU`]
[@http://en.wikipedia.org/wiki/Glibc GNU glibc] Standard C library.
Version number available as major, and minor.
*/
#define BOOST_LIBC_GNU BOOST_VERSION_NUMBER(0,0,0)
#if defined(__GLIBC__) || defined(__GNU_LIBRARY__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIBC_UC`]
[@http://en.wikipedia.org/wiki/Uclibc uClibc] Standard C library.
Version number available as major, minor, and patch.
*/
#define BOOST_LIBC_UC BOOST_VERSION_NUMBER(0,0,0)
#if defined(__UCLIBC__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIBC_VMS`]
VMS libc Standard C library.
Version number available as major, minor, and patch.
*/
#define BOOST_LIBC_VMS BOOST_VERSION_NUMBER(0,0,0)
#if defined(__CRTL_VER)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,14 +11,27 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIBC_ZOS`]
z/OS libc Standard C library.
Version number available as major, minor, and patch.
*/
#define BOOST_LIBC_ZOS BOOST_VERSION_NUMBER(0,0,0)
#if defined(__LIBREL__)
#undef BOOST_LIBC_ZOS
#define BOOST_LIBC_ZOS BOOST_PREDEF_MAKE_F_FF_FFFF(__LIBREL__)
#if defined(__LIBREL__)
#define BOOST_LIBC_ZOS BOOST_PREDEF_MAKE_F_FF_FFFF(__LIBREL__)
#elif defined(__TARGET_LIB__)
#define BOOST_LIBC_ZOS BOOST_PREDEF_MAKE_F_FF_FFFF(__TARGET_LIB__)
#else
#define BOOST_LIBC_ZOS BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBC_ZOS,"zOS")
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBC_ZOS,"z/OS")
#endif

View File

@ -1,7 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright John Maddock 2001-2003
Copyright Jens Maurer 2001-2002
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -32,6 +30,7 @@ can end up detecting that first rather than STLport:
/*
The rest in alpha order, except for Dinkumware.
*/
#include <boost/predef/library/std/cxx.h>
#include <boost/predef/library/std/libcomo.h>
#include <boost/predef/library/std/modena.h>
#include <boost/predef/library/std/msl.h>

View File

@ -0,0 +1,31 @@
/*
Copyright Redshift Software Inc 2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef BOOST_PREDEF_LIBRARY_STD_CXX_H
#define BOOST_PREDEF_LIBRARY_STD_CXX_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIBSTD_CXX`]
[@http://libcxx.llvm.org/ libc++] C++ Standard Library.
If available version number as major, minor, and patch.
*/
#define BOOST_LIBSTD_CXX BOOST_VERSION_NUMBER(0,0,0)
#if defined(_LIBCPP_VERSION)
#undef BOOST_LIBSTD_CXX
#define BOOST_LIBSTD_CXX BOOST_PREDEF_MAKE_NN_NN(__CPPLIB_VER)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_CXX,"libc++")
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIBSTD_DINKUMWARE`]
[@http://en.wikipedia.org/wiki/Dinkumware Dinkumware] Standard C++ Library.
If available version number as major, minor, and patch.
*/
#define BOOST_LIBSTD_DINKUMWARE BOOST_VERSION_NUMBER(0,0,0)
#if (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIBSTD_COMO`]
[@http://www.comeaucomputing.com/libcomo/ Comeau Computing] Standard C++ Library.
Version number available as major.
*/
#define BOOST_LIBSTD_COMO BOOST_VERSION_NUMBER(0,0,0)
#if defined(__LIBCOMO__)
@ -19,6 +26,6 @@ http://www.boost.org/LICENSE_1_0.txt)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_COMO,"Como")
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_COMO,"Comeau Computing")
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,12 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIBSTD_MSIPL`]
[@http://modena.us/ Modena Software Lib++] Standard C++ Library.
*/
#define BOOST_LIBSTD_MSIPL BOOST_VERSION_NUMBER(0,0,0)
#if defined(MSIPL_COMPILE_H) || defined(__MSIPL_COMPILE_H)
@ -19,6 +25,6 @@ http://www.boost.org/LICENSE_1_0.txt)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_MSIPL,"Modena MSIPL")
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_MSIPL,"Modena Software Lib++")
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIBSTD_MSL`]
[@http://www.freescale.com/ Metrowerks] Standard C++ Library.
Version number available as major, minor, and patch.
*/
#define BOOST_LIBSTD_MSL BOOST_VERSION_NUMBER(0,0,0)
#if defined(__MSL_CPP__) || defined(__MSL__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIBSTD_RW`]
[@http://en.wikipedia.org/wiki/XXX Roguewave Standard C++] library.
If available version number as major, minor, and patch.
*/
#define BOOST_LIBSTD_RW BOOST_VERSION_NUMBER(0,0,0)
#if defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIBSTD_SGI`]
[@http://en.wikipedia.org/wiki/XXX SGI Standard C++] library.
If available version number as major, minor, and patch.
*/
#define BOOST_LIBSTD_SGI BOOST_VERSION_NUMBER(0,0,0)
#if defined(__STL_CONFIG_H)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,16 +11,21 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIBSTD_GNU`]
[@http://gcc.gnu.org/libstdc++/ GNU libstdc++] Standard C++ library.
Version number available as year (from 1970), month, and day.
*/
#define BOOST_LIBSTD_GNU BOOST_VERSION_NUMBER(0,0,0)
#if defined(__GLIBCPP__) || defined(__GLIBCXX__)
#undef BOOST_LIBSTD_GNU
#if defined(__GLIBCXX__)
#define BOOST_LIBSTD_GNU BOOST_PREDEF_MAKE_YYYY_MM_DD(__GLIBCXX__)
#elif
#define BOOST_LIBSTD_GNU BOOST_PREDEF_MAKE_YYYY_MM_DD(__GLIBCPP__)
#else
#define BOOST_LIBSTD_GNU BOOST_VERSION_NUMBER(0,0,1)
#define BOOST_LIBSTD_GNU BOOST_PREDEF_MAKE_YYYY_MM_DD(__GLIBCPP__)
#endif
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIBSTD_STLPORT`]
[@http://en.wikipedia.org/wiki/XXX STLport Standard C++] library.
Version number available as major, minor, and patch.
*/
#define BOOST_LIBSTD_STLPORT BOOST_VERSION_NUMBER(0,0,0)
#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,12 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LIBSTD_IBM`]
[@http://en.wikipedia.org/wiki/XXX IBM VACPP Standard C++] library.
*/
#define BOOST_LIBSTD_IBM BOOST_VERSION_NUMBER(0,0,0)
#if defined(__IBMCPP__)

View File

@ -11,6 +11,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_OS_`]
[@http://en.wikipedia.org/wiki/XXX AIX] operating system.
Version number available as major, minor, and patch.
*/
#define BOOST_OS_AIX BOOST_VERSION_NUMBER(0,0,0)
#if defined(_AIX) || defined(__TOS_AIX__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,12 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_OS_AMIGAOS`]
[@http://en.wikipedia.org/wiki/XXX AmigaOS] operating system.
*/
#define BOOST_OS_AMIGAOS BOOST_VERSION_NUMBER(0,0,0)
#if defined(AMIGA) || defined(__amigaos__)
@ -19,6 +25,6 @@ http://www.boost.org/LICENSE_1_0.txt)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_AMIGAOS,"Amiga OS")
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_AMIGAOS,"AmigaOS")
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,12 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_OS_BEOS`]
[@http://en.wikipedia.org/wiki/XXX Be] operating system.
*/
#define BOOST_OS_BEOS BOOST_VERSION_NUMBER(0,0,0)
#if defined(__BEOS__)

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +11,25 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_OS_BSD`]
[@http://en.wikipedia.org/wiki/XXX BSD] operating system.
BSD has various branch operating systems possible and each detected
individually. This detects the following variations and sets a specific
version number macro to match:
* `BOOST_OS_DRAGONFLY_BSD` [@http://en.wikipedia.org/wiki/XXX Dragonfly BSD]
* `BOOST_OS_FREE_BSD` [@http://en.wikipedia.org/wiki/XXX Free BSD]
* `BOOST_OS_BSDI_BSD` [@http://en.wikipedia.org/wiki/XXX BSDI]
* `BOOST_OS_NET_BSD` [@http://en.wikipedia.org/wiki/XXX Net BSD]
* `BOOST_OS_OPEN_BSD` [@http://en.wikipedia.org/wiki/XXX Open BSD]
[note The general `BOOST_OS_BSD` is set in all cases to indicate some form
of BSD. If the above variants is detected the corresponding macro is also set.]
*/
#define BOOST_OS_BSD BOOST_VERSION_NUMBER(0,0,0)
#define BOOST_OS_DRAGONFLY_BSD BOOST_VERSION_NUMBER(0,0,0)
#define BOOST_OS_FREE_BSD BOOST_VERSION_NUMBER(0,0,0)
@ -49,10 +68,10 @@ http://www.boost.org/LICENSE_1_0.txt)
#if defined(__FreeBSD_version)
#if __FreeBSD_version < 500000
#define BOOST_OS_FREE_BSD \
BOOST_PREDEF_VRP_N_N_N_000(__FreeBSD_version)
BOOST_PREDEF_MAKE_N_N_N_000(__FreeBSD_version)
#else
#define BOOST_OS_FREE_BSD \
BOOST_PREDEF_VRP_N_NN_000(__FreeBSD_version)
BOOST_PREDEF_MAKE_N_NN_000(__FreeBSD_version)
#endif
#else
#define BOOST_OS_FREE_BSD BOOST_VERSION_NUMBER(0,0,1)
@ -67,7 +86,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_OS_NET_BSD BOOST_VERSION_NUMBER(1,0,0)
#elif defined(__NetBSD_Version)
#define BOOST_OS_NET_BSD \
BOOST_PREDEF_VRP_NN_NN_00_NN_00(__NetBSD_Version)
BOOST_PREDEF_MAKE_NN_NN_00_NN_00(__NetBSD_Version)
#else
#define BOOST_OS_NET_BSD BOOST_VERSION_NUMBER(0,0,1)
#endif

View File

@ -10,7 +10,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_VERSION_NUMBER_H
/*`
[heading BOOST_VERSION_NUMBER]
[heading `BOOST_VERSION_NUMBER`]
``
BOOST_VERSION_NUMBER(major,minor,patch)
@ -18,12 +18,12 @@ BOOST_VERSION_NUMBER(major,minor,patch)
Defines standard version numbers, with these properties:
* Decimal base whole numbers in the range [0,major*10000000].
* 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.
* 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

View File

@ -13,6 +13,8 @@ if ! $(BOOST_ROOT)
xml predef
:
predef.qbk
:
<dependency>$(BOOST_PREDEF_ROOT)/boost/predef.h
;
explicit predef ;
@ -21,7 +23,7 @@ boostbook standalone
predef
:
<xsl:param>boost.root=../../..
<xsl:param>generate.section.toc.level=3
#<xsl:param>generate.section.toc.level=3
<xsl:param>chunk.section.depth=1
<xsl:param>chunk.first.sections=1

View File

@ -0,0 +1,646 @@
/*=============================================================================
Copyright (c) 2004 Joel de Guzman
http://spirit.sourceforge.net/
Distributed under the Boost Software License, Version 1.0. (See accompany-
ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
=============================================================================*/
/*=============================================================================
Body defaults
=============================================================================*/
body
{
margin: 1em;
font-family: sans-serif;
}
/*=============================================================================
Paragraphs
=============================================================================*/
p
{
text-align: left;
font-size: 10pt;
line-height: 1.15;
}
/*=============================================================================
Program listings
=============================================================================*/
/* Code on paragraphs */
p tt.computeroutput
{
font-size: 9pt;
}
pre.synopsis
{
font-size: 9pt;
margin: 1pc 4% 0pc 4%;
padding: 0.5pc 0.5pc 0.5pc 0.5pc;
}
.programlisting,
.screen
{
font-size: 9pt;
display: block;
margin: 1pc 4% 0pc 4%;
padding: 0.5pc 0.5pc 0.5pc 0.5pc;
}
/* Program listings in tables don't get borders */
td .programlisting,
td .screen
{
margin: 0pc 0pc 0pc 0pc;
padding: 0pc 0pc 0pc 0pc;
}
/*=============================================================================
Headings
=============================================================================*/
h1, h2, h3, h4, h5, h6
{
text-align: left;
margin: 1em 0em 0.5em 0em;
font-weight: bold;
}
h1 { font-size: 140%; }
h2 { font-weight: bold; font-size: 140%; }
h3 { font-weight: bold; font-size: 130%; }
h4 { font-weight: bold; font-size: 120%; }
h5 { font-weight: normal; font-style: italic; font-size: 110%; }
h6 { font-weight: normal; font-style: italic; font-size: 100%; }
/* Top page titles */
title,
h1.title,
h2.title
h3.title,
h4.title,
h5.title,
h6.title,
.refentrytitle
{
font-weight: bold;
margin-bottom: 1pc;
}
h1.title { font-size: 140% }
h2.title { font-size: 140% }
h3.title { font-size: 130% }
h4.title { font-size: 120% }
h5.title { font-size: 110% }
h6.title { font-size: 100% }
.section h1
{
margin: 0em 0em 0.5em 0em;
font-size: 140%;
}
.section h2 { font-size: 140% }
.section h3 { font-size: 130% }
.section h4 { font-size: 120% }
.section h5 { font-size: 110% }
.section h6 { font-size: 100% }
/* Code on titles */
h1 tt.computeroutput { font-size: 140% }
h2 tt.computeroutput { font-size: 140% }
h3 tt.computeroutput { font-size: 130% }
h4 tt.computeroutput { font-size: 130% }
h5 tt.computeroutput { font-size: 130% }
h6 tt.computeroutput { font-size: 130% }
/*=============================================================================
Author
=============================================================================*/
h3.author
{
font-size: 100%
}
/*=============================================================================
Lists
=============================================================================*/
li
{
font-size: 10pt;
line-height: 1.3;
}
/* Unordered lists */
ul
{
text-align: left;
}
/* Ordered lists */
ol
{
text-align: left;
}
/*=============================================================================
Links
=============================================================================*/
a
{
text-decoration: none; /* no underline */
}
a:hover
{
text-decoration: underline;
}
/*=============================================================================
Spirit style navigation
=============================================================================*/
.spirit-nav
{
text-align: right;
}
.spirit-nav a
{
color: white;
padding-left: 0.5em;
}
.spirit-nav img
{
border-width: 0px;
}
/*=============================================================================
Copyright footer
=============================================================================*/
.copyright-footer
{
text-align: right;
font-size: 70%;
}
.copyright-footer p
{
text-align: right;
font-size: 80%;
}
/*=============================================================================
Table of contents
=============================================================================*/
.toc
{
margin: 1pc 4% 0pc 4%;
padding: 0.1pc 1pc 0.1pc 1pc;
font-size: 80%;
line-height: 1.15;
}
.boost-toc
{
float: right;
padding: 0.5pc;
}
/* Code on toc */
.toc .computeroutput { font-size: 120% }
/* No margin on nested menus */
.toc dl dl { margin: 0; }
/*=============================================================================
Tables
=============================================================================*/
.table-title,
div.table p.title
{
margin-left: 4%;
padding-right: 0.5em;
padding-left: 0.5em;
}
.informaltable table,
.table table
{
width: 92%;
margin-left: 4%;
margin-right: 4%;
}
div.informaltable table,
div.table table
{
padding: 4px;
}
/* Table Cells */
div.informaltable table tr td,
div.table table tr td
{
padding: 0.5em;
text-align: left;
font-size: 9pt;
}
div.informaltable table tr th,
div.table table tr th
{
padding: 0.5em 0.5em 0.5em 0.5em;
border: 1pt solid white;
font-size: 80%;
}
table.simplelist
{
width: auto !important;
margin: 0em !important;
padding: 0em !important;
border: none !important;
}
table.simplelist td
{
margin: 0em !important;
padding: 0em !important;
text-align: left !important;
font-size: 9pt !important;
border: none !important;
}
/*=============================================================================
Blurbs
=============================================================================*/
div.note,
div.tip,
div.important,
div.caution,
div.warning,
p.blurb
{
font-size: 9pt; /* A little bit smaller than the main text */
line-height: 1.2;
display: block;
margin: 1pc 4% 0pc 4%;
padding: 0.5pc 0.5pc 0.5pc 0.5pc;
}
p.blurb img
{
padding: 1pt;
}
/*=============================================================================
Variable Lists
=============================================================================*/
div.variablelist
{
margin: 1em 0;
}
/* Make the terms in definition lists bold */
div.variablelist dl dt,
span.term
{
font-weight: bold;
font-size: 10pt;
}
div.variablelist table tbody tr td
{
text-align: left;
vertical-align: top;
padding: 0em 2em 0em 0em;
font-size: 10pt;
margin: 0em 0em 0.5em 0em;
line-height: 1;
}
div.variablelist dl dt
{
margin-bottom: 0.2em;
}
div.variablelist dl dd
{
margin: 0em 0em 0.5em 2em;
font-size: 10pt;
}
div.variablelist table tbody tr td p,
div.variablelist dl dd p
{
margin: 0em 0em 0.5em 0em;
line-height: 1;
}
/*=============================================================================
Misc
=============================================================================*/
/* Title of books and articles in bibliographies */
span.title
{
font-style: italic;
}
span.underline
{
text-decoration: underline;
}
span.strikethrough
{
text-decoration: line-through;
}
/* Copyright, Legal Notice */
div div.legalnotice p
{
text-align: left
}
/*=============================================================================
Colors
=============================================================================*/
@media screen
{
body {
background-color: #FFFFFF;
color: #000000;
}
/* Syntax Highlighting */
.keyword { color: #0000AA; }
.identifier { color: #000000; }
.special { color: #707070; }
.preprocessor { color: #402080; }
.char { color: teal; }
.comment { color: #800000; }
.string { color: teal; }
.number { color: teal; }
.white_bkd { background-color: #FFFFFF; }
.dk_grey_bkd { background-color: #999999; }
/* Links */
a, a .keyword, a .identifier, a .special, a .preprocessor
a .char, a .comment, a .string, a .number
{
color: #005a9c;
}
a:visited, a:visited .keyword, a:visited .identifier,
a:visited .special, a:visited .preprocessor a:visited .char,
a:visited .comment, a:visited .string, a:visited .number
{
color: #9c5a9c;
}
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover,
h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited
{
text-decoration: none; /* no underline */
color: #000000;
}
/* Copyright, Legal Notice */
.copyright
{
color: #666666;
font-size: small;
}
div div.legalnotice p
{
color: #666666;
}
/* Program listing */
pre.synopsis
{
border: 1px solid #DCDCDC;
}
.programlisting,
.screen
{
border: 1px solid #DCDCDC;
}
td .programlisting,
td .screen
{
border: 0px solid #DCDCDC;
}
/* Blurbs */
div.note,
div.tip,
div.important,
div.caution,
div.warning,
p.blurb
{
border: 1px solid #DCDCDC;
}
/* Table of contents */
.toc
{
border: 1px solid #DCDCDC;
}
/* Tables */
div.informaltable table tr td,
div.table table tr td
{
border: 1px solid #DCDCDC;
}
div.informaltable table tr th,
div.table table tr th
{
background-color: #F0F0F0;
border: 1px solid #DCDCDC;
}
.copyright-footer
{
color: #8F8F8F;
}
/* Misc */
span.highlight
{
color: #00A000;
}
}
@media print
{
/* Links */
a
{
color: black;
}
a:visited
{
color: black;
}
.spirit-nav
{
display: none;
}
/* Program listing */
pre.synopsis
{
border: 1px solid gray;
}
.programlisting,
.screen
{
border: 1px solid gray;
}
td .programlisting,
td .screen
{
border: 0px solid #DCDCDC;
}
/* Table of contents */
.toc
{
border: 1px solid gray;
}
.informaltable table,
.table table
{
border: 1px solid gray;
border-collapse: collapse;
}
/* Tables */
div.informaltable table tr td,
div.table table tr td
{
border: 1px solid gray;
}
div.informaltable table tr th,
div.table table tr th
{
border: 1px solid gray;
}
table.simplelist tr td
{
border: none !important;
}
/* Misc */
span.highlight
{
font-weight: bold;
}
}
/*=============================================================================
Images
=============================================================================*/
span.inlinemediaobject img
{
vertical-align: middle;
}
/*==============================================================================
Super and Subscript: style so that line spacing isn't effected, see
http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=1&postId=5341
==============================================================================*/
sup,
sub {
height: 0;
line-height: 1;
vertical-align: baseline;
position: relative;
}
/* For internet explorer: */
* html sup,
* html sub {
vertical-align: bottom;
}
sup {
bottom: 1ex;
}
sub {
top: .5ex;
}
/*==============================================================================
Indexes: pretty much the same as the TOC.
==============================================================================*/
.index
{
font-size: 80%;
padding-top: 0px;
padding-bottom: 0px;
margin-top: 0px;
margin-bottom: 0px;
margin-left: 0px;
}
.index ul
{
padding-left: 3em;
}
.index p
{
padding: 2px;
margin: 2px;
}
.index-entry-level-0
{
font-weight: bold;
}
.index em
{
font-weight: bold;
}

View File

@ -0,0 +1,275 @@
/*
:Author: David Goodger
:Contact: goodger@python.org
:Date: $Date: 2007-04-16 23:44:59 -0500 (Mon, 16 Apr 2007) $
:Revision: $Revision: 37457 $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
customize this style sheet.
*/
/* used to remove borders from tables and images */
.borderless, table.borderless td, table.borderless th {
border: 0 }
table.borderless td, table.borderless th {
/* Override padding for "table.docutils td" with "! important".
The right padding separates the table cells. */
padding: 0 0.5em 0 0 ! important }
.first {
/* Override more specific margin styles with "! important". */
margin-top: 0 ! important }
.last, .with-subtitle {
margin-bottom: 0 ! important }
.hidden {
display: none }
a.toc-backref {
text-decoration: none ;
color: black }
blockquote.epigraph {
margin: 2em 5em ; }
dl.docutils dd {
margin-bottom: 0.5em }
/* Uncomment (and remove this text!) to get bold-faced definition list terms
dl.docutils dt {
font-weight: bold }
*/
div.abstract {
margin: 2em 5em }
div.abstract p.topic-title {
font-weight: bold ;
text-align: center }
div.admonition, div.attention, div.caution, div.danger, div.error,
div.hint, div.important, div.note, div.tip, div.warning {
margin: 2em ;
border: medium outset ;
padding: 1em }
div.admonition p.admonition-title, div.hint p.admonition-title,
div.important p.admonition-title, div.note p.admonition-title,
div.tip p.admonition-title {
font-weight: bold ;
font-family: sans-serif }
div.attention p.admonition-title, div.caution p.admonition-title,
div.danger p.admonition-title, div.error p.admonition-title,
div.warning p.admonition-title {
color: red ;
font-weight: bold ;
font-family: sans-serif }
/* Uncomment (and remove this text!) to get reduced vertical space in
compound paragraphs.
div.compound .compound-first, div.compound .compound-middle {
margin-bottom: 0.5em }
div.compound .compound-last, div.compound .compound-middle {
margin-top: 0.5em }
*/
div.dedication {
margin: 2em 5em ;
text-align: center ;
font-style: italic }
div.dedication p.topic-title {
font-weight: bold ;
font-style: normal }
div.figure {
margin-left: 2em ;
margin-right: 2em }
div.footer, div.header {
clear: both;
font-size: smaller }
div.line-block {
display: block ;
margin-top: 1em ;
margin-bottom: 1em }
div.line-block div.line-block {
margin-top: 0 ;
margin-bottom: 0 ;
margin-left: 1.5em }
div.sidebar {
margin-left: 1em ;
border: medium outset ;
padding: 1em ;
background-color: #ffffee ;
width: 40% ;
float: right ;
clear: right }
div.sidebar p.rubric {
font-family: sans-serif ;
font-size: medium }
div.system-messages {
margin: 5em }
div.system-messages h1 {
color: red }
div.system-message {
border: medium outset ;
padding: 1em }
div.system-message p.system-message-title {
color: red ;
font-weight: bold }
div.topic {
margin: 2em }
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
margin-top: 0.4em }
h1.title {
text-align: center }
h2.subtitle {
text-align: center }
hr.docutils {
width: 75% }
img.align-left {
clear: left }
img.align-right {
clear: right }
ol.simple, ul.simple {
margin-bottom: 1em }
ol.arabic {
list-style: decimal }
ol.loweralpha {
list-style: lower-alpha }
ol.upperalpha {
list-style: upper-alpha }
ol.lowerroman {
list-style: lower-roman }
ol.upperroman {
list-style: upper-roman }
p.attribution {
text-align: right ;
margin-left: 50% }
p.caption {
font-style: italic }
p.credits {
font-style: italic ;
font-size: smaller }
p.label {
white-space: nowrap }
p.rubric {
font-weight: bold ;
font-size: larger ;
color: maroon ;
text-align: center }
p.sidebar-title {
font-family: sans-serif ;
font-weight: bold ;
font-size: larger }
p.sidebar-subtitle {
font-family: sans-serif ;
font-weight: bold }
p.topic-title {
font-weight: bold }
pre.address {
margin-bottom: 0 ;
margin-top: 0 ;
font-family: serif ;
font-size: 100% }
pre.literal-block, pre.doctest-block {
margin-left: 2em ;
margin-right: 2em }
span.classifier {
font-family: sans-serif ;
font-style: oblique }
span.classifier-delimiter {
font-family: sans-serif ;
font-weight: bold }
span.interpreted {
font-family: sans-serif }
span.option {
white-space: nowrap }
span.pre {
white-space: pre }
span.problematic {
color: red }
span.section-subtitle {
/* font-size relative to parent (h1..h6 element) */
font-size: 80% }
table.citation {
border-left: solid 1px gray;
margin-left: 1px }
table.docinfo {
margin: 2em 4em }
table.docutils {
margin-top: 0.5em ;
margin-bottom: 0.5em }
table.footnote {
border-left: solid 1px black;
margin-left: 1px }
table.docutils td, table.docutils th,
table.docinfo td, table.docinfo th {
padding-left: 0.5em ;
padding-right: 0.5em ;
vertical-align: top }
table.docutils th.field-name, table.docinfo th.docinfo-name {
font-weight: bold ;
text-align: left ;
white-space: nowrap ;
padding-left: 0 }
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
font-size: 100% }
ul.auto-toc {
list-style-type: none }

Binary file not shown.

After

Width:  |  Height:  |  Size: 603 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 485 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 410 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 488 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 507 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 446 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 431 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 431 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 397 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 420 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 336 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 490 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 334 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 867 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,70 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Predef 1.0</title>
<link rel="stylesheet" href="boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="Predef 1.0">
<link rel="next" href="predef/introduction.html" title="Introduction">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav"><a accesskey="n" href="predef/introduction.html"><img src="images/next.png" alt="Next"></a></div>
<div class="article">
<div class="titlepage">
<div>
<div><h2 class="title">
<a name="predef"></a>Predef 1.0</h2></div>
<div><div class="authorgroup"><div class="author"><h3 class="author">
<span class="firstname">Rene</span> <span class="surname">Rivera</span>
</h3></div></div></div>
<div><p class="copyright">Copyright &#169; 2005 Rene Rivera</p></div>
<div><p class="copyright">Copyright &#169; 2008-2011 Redshift
Software Inc</p></div>
<div><div class="legalnotice">
<a name="predef.legal"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></div>
</div>
<hr>
</div>
<div class="toc">
<p><b>Table of Contents</b></p>
<dl>
<dt><span class="section"><a href="predef/introduction.html">Introduction</a></span></dt>
<dt><span class="section"><a href="predef/using_the_predefs.html">Using the predefs</a></span></dt>
<dt><span class="section"><a href="predef/adding_new_predefs.html">Adding new predefs</a></span></dt>
<dt><span class="section"><a href="predef/reference.html">Reference</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="predef/reference.html#predef.reference.boost_architecture_architecture_"><code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_</span></code> architecture macros</a></span></dt>
<dt><span class="section"><a href="predef/reference.html#predef.reference.boost_cxx_compiler_macros"><code class="computeroutput"><span class="identifier">BOOST_CXX_</span></code> compiler macros</a></span></dt>
<dt><span class="section"><a href="predef/reference.html#predef.reference.boost_language_language_standard"><code class="computeroutput"><span class="identifier">BOOST_LANGUAGE_</span></code> language standards macros</a></span></dt>
<dt><span class="section"><a href="predef/reference.html#predef.reference.boost_libc_and_boost_libstd_libr"><code class="computeroutput"><span class="identifier">BOOST_LIBC_</span></code> and <code class="computeroutput"><span class="identifier">BOOST_LIBSTD_</span></code>
library macros</a></span></dt>
<dt><span class="section"><a href="predef/reference.html#predef.reference.boost_os_operating_system_macros"><code class="computeroutput"><span class="identifier">BOOST_OS_</span></code> operating system macros</a></span></dt>
<dt><span class="section"><a href="predef/reference.html#predef.reference.version_definition_macros">Version definition
macros</a></span></dt>
</dl></dd>
</dl>
</div>
<div class="warning"><table border="0" summary="Warning">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Warning]" src="images/warning.png"></td>
<th align="left">Warning</th>
</tr>
<tr><td align="left" valign="top"><p>
This is a <span class="bold"><strong>proposed</strong></span> Boost Libnrary and <span class="bold"><strong>is not</strong></span> part of the Boost C++ Libraries.
</p></td></tr>
</table></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: November 30, 2011 at 05:42:16 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
<div class="spirit-nav"><a accesskey="n" href="predef/introduction.html"><img src="images/next.png" alt="Next"></a></div>
</body>
</html>

View File

@ -0,0 +1,22 @@
/*
<20> Copyright Beman Dawes, 2007
Distributed under the Boost Software License, Version 1.0.
See www.boost.org/LICENSE_1_0.txt
*/
/*******************************************************************************
Body
*******************************************************************************/
body { font-family: sans-serif; margin: 1em; }
/*******************************************************************************
Table
*******************************************************************************/
table { margin: 0.5em; }
/*** end ***/

View File

@ -0,0 +1,224 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Adding new predefs</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="../index.html" title="Predef 1.0">
<link rel="up" href="../index.html" title="Predef 1.0">
<link rel="prev" href="using_the_predefs.html" title="Using the predefs">
<link rel="next" href="reference.html" title="Reference">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="using_the_predefs.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="predef.adding_new_predefs"></a><a class="link" href="adding_new_predefs.html" title="Adding new predefs">Adding new predefs</a>
</h2></div></div></div>
<p>
We know that a library like this one will be an eternal work-in-progress. And
as such we expect, and look forward to, others contributing corrections and
additions to the predefs. With that in mind we need to keep a consistent way
of defining the new predefs. Hence all current, and future, predefs follow
the same structure and requirements.
</p>
<h4>
<a name="predef.adding_new_predefs.h0"></a>
<span><a name="predef.adding_new_predefs.requirements_of_the_header"></a></span><a class="link" href="adding_new_predefs.html#predef.adding_new_predefs.requirements_of_the_header">Requirements
of the header</a>
</h4>
<p>
All predefs need to follow a set of requirements:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
The headers must use the Boost Software License.
</li>
<li class="listitem">
The predef must, by default, be defined as <code class="computeroutput"><span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">)</span></code>.
</li>
<li class="listitem">
The predef must be redefined to a non-zero value once detected.
</li>
<li class="listitem">
The predef must, by default, be defined to <code class="computeroutput"><span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">,</span><span class="number">1</span><span class="special">)</span></code> when the predef is detected.
</li>
<li class="listitem">
If possible, the predef will be defined as the version number detected.
</li>
<li class="listitem">
The predef must declare itself, after being defined, for the testing system.
</li>
</ul></div>
<p>
And there are some extra guidelines that predef headers should follow:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
The detection should avoid including extra headers that might otherwise
not be included by default.
</li>
<li class="listitem">
If the detection must include a header, prefer guarding it within the detection
if possible.
</li>
<li class="listitem">
If the detection must include a headers unconditionally, and has a choice
of headers to include, prefer the ones with the least impact. I.e. include
the one with the minimal set of definitions and other dependencies.
</li>
</ul></div>
<h4>
<a name="predef.adding_new_predefs.h1"></a>
<span><a name="predef.adding_new_predefs.structure_of_the_header"></a></span><a class="link" href="adding_new_predefs.html#predef.adding_new_predefs.structure_of_the_header">Structure
of the header</a>
</h4>
<p>
For general consistency it's suggested that new predef headers follow the structure
below, as current predef headers do. First we have the copyright and license
statement, followed by the include guard:
</p>
<p>
</p>
<pre class="programlisting"><span class="comment">/*
Copyright Jane Doe YYYY
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
*/</span>
<span class="preprocessor">#ifndef</span> <span class="identifier">BOOST_PREDEF_category_tag_H</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_PREDEF_category_tag_H</span>
</pre>
<p>
</p>
<p>
Depending on how you are defining the predef you will at minimum have to include
the <code class="computeroutput"><span class="identifier">version_number</span><span class="special">.</span><span class="identifier">h</span></code> header. But you might also want to include
the <code class="computeroutput"><span class="identifier">make</span><span class="special">.</span><span class="identifier">h</span></code> header for the version number decomposing
utility macros:
</p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">/</span><span class="identifier">version_number</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">/</span><span class="identifier">make</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span>
</pre>
<p>
</p>
<p>
The Predef library uses Quickbook for documentation and for the individual
predefs to appear in the reference section we add in-code documentation followed
by the zero-value default definition of the predef macro. We strongly recommend
this particular placement of the documentation and default definition because
some development environments automatically interpret this and provide in-line
help for the macro. In particular this works for the popular Eclipse IDE:
</p>
<p>
</p>
<pre class="programlisting"><span class="comment">/*`
[heading `BOOST_category_tag`]
Documentation about what is detected.
*/</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_category_tag</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">)</span>
</pre>
<p>
</p>
<p>
Next is the detection and definition of the particular predef. The structure
for this is to do a single overall check (<code class="computeroutput"><span class="identifier">condition_a</span></code>)
and place the further version detection inside this. The first action inside
the overall check is to "<code class="computeroutput"><span class="preprocessor">#undef</span>
<span class="identifier">BOOST_category_tag</span></code>" which undefines
the zero-value default. The rest is up to the you how to do the checks for
defining the version. But at minimum it must "<code class="computeroutput"><span class="preprocessor">#define</span>
<span class="identifier">BOOST_category_tag</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">,</span><span class="number">1</span><span class="special">)</span></code>" as the fallback to minimally indicate
that the predef was detected:
</p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#if</span> <span class="special">(</span><span class="identifier">condition_a</span><span class="special">)</span>
<span class="preprocessor">#undef</span> <span class="identifier">BOOST_category_tag</span>
<span class="preprocessor">#if</span> <span class="special">(</span><span class="identifier">condition_b</span><span class="special">)</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_category_tag</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="identifier">major</span><span class="special">,</span><span class="identifier">minor</span><span class="special">,</span><span class="identifier">patch</span><span class="special">)</span>
<span class="preprocessor">#else</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_category_tag</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">,</span><span class="number">1</span><span class="special">)</span>
<span class="preprocessor">#endif</span>
<span class="preprocessor">#endif</span>
</pre>
<p>
</p>
<p>
The testing of the predef macros is automated to generate checks for all the
defined predefs, whether detected or not. To do this we need to declare the
predef to the test system. This declaration is empty for regular use. And during
the test programs theexpand out specially to create informational output:
</p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">test</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span>
<span class="identifier">BOOST_PREDEF_DECLARE_TEST</span><span class="special">(</span><span class="identifier">BOOST_category_tag</span><span class="special">,</span><span class="string">"Name"</span><span class="special">)</span>
</pre>
<p>
</p>
<p>
And, of course, we last need to close out the include guard:
</p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#endif</span>
</pre>
<p>
</p>
<h4>
<a name="predef.adding_new_predefs.h2"></a>
<span><a name="predef.adding_new_predefs.using_utility_pattern_macros"></a></span><a class="link" href="adding_new_predefs.html#predef.adding_new_predefs.using_utility_pattern_macros">Using utility
pattern macros</a>
</h4>
<p>
By including:
</p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">/</span><span class="identifier">make</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span>
</pre>
<p>
</p>
<p>
One will get a set utlity macros to decompose common version macros as defined
by compilers. For example the EDG compiler uses a simple 3-digit version macro
(M,N,P). It can be decomesed and defined as:
</p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_CXX_EDG</span> <span class="identifier">BOOST_PREDEF_MAKE_N_N_N</span><span class="special">(</span><span class="identifier">__EDG_VERSION__</span><span class="special">)</span>
</pre>
<p>
</p>
<p>
The decomposition macros are split into three types: decimal decomposition,
hexadecimal decomposition, and date decomposition. They follow the format of
using "N" for decimal, "F" for hexadecimal, and "Y",
"M", "D" for dates.
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2005 Rene Rivera<br>Copyright &#169; 2008-2011 Redshift
Software Inc<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="using_the_predefs.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,199 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Introduction</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="../index.html" title="Predef 1.0">
<link rel="up" href="../index.html" title="Predef 1.0">
<link rel="prev" href="../index.html" title="Predef 1.0">
<link rel="next" href="using_the_predefs.html" title="Using the predefs">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../index.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="using_the_predefs.html"><img src="../images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="predef.introduction"></a><a class="link" href="introduction.html" title="Introduction">Introduction</a>
</h2></div></div></div>
<p>
This library defines a set of compiler, architecture, operating system, and
library version numbers from the information it can gather of C++ predefined
macros or those defined in generally available headers. The idea for this library
grew out of a proposal to extend the Boost Config library to provide more,
and consistent, information than the feature definitions it supports. What
follows is an edited version of that brief proposal.
</p>
<h4>
<a name="predef.introduction.h0"></a>
<span><a name="predef.introduction.proposal"></a></span><a class="link" href="introduction.html#predef.introduction.proposal">Proposal</a>
</h4>
<p>
The idea is to define a set of macros to identify compilers and consistently
represent their version. This includes:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
A unique BOOST_VERSION_NUMBER(major,minor,patch) macro to specify version
numbers (unfortunately, the name BOOST_VERSION is already taken to designate
the version number of boost itself).
</li>
<li class="listitem">
A compiler identification macro, suitable for use in #if/#elif directives,
for each of the supported compilers. All macros would be defined, regardless
of the compiler. The one macro corresponding to the compiler being used
would be defined, in terms of BOOST_VERSION_NUMBER, to carry the exact
compiler version. All other macros would expand to an expression evaluating
to false (for instance, the token 0) to indicate that the corresponding
compiler is not present.
</li>
<li class="listitem">
"Null values" could be set, for all macros, in boost/config/select_compiler.hpp;
then, for each compiler the corresponding identification macro would be
#undef and re-#defined in the corresponding boost/compiler/(cc).hpp; however
in the context of the Boost.Config infrastructure using a "prefix"
header (to be introduced) or boost/config/suffix.hpp is a better solution.
This point is further clarified later.
</li>
</ul></div>
<h4>
<a name="predef.introduction.h1"></a>
<span><a name="predef.introduction.current_library"></a></span><a class="link" href="introduction.html#predef.introduction.current_library">Current
Library</a>
</h4>
<p>
The current Predef library is now, both an independent library, and expanded
in scope. It includes detection and definition of architectures, compilers,
languages, libraries, and operating systems. The key benefits are:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
Version numbers that are always defined so that one doesn't have to guard
with <code class="computeroutput"><span class="preprocessor">#ifdef</span></code>.
</li>
<li class="listitem">
All possible definitions are included with the single <code class="computeroutput"><span class="preprocessor">#include</span>
<span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>
so that it's friendly to precompiled header usage.
</li>
<li class="listitem">
Predefs can be directly used in both preprocessor and compiler expressions
for comparison to other similarly defined values.
</li>
<li class="listitem">
The headers are usable from multiple languages, that support the C preprocessor.
In particular C++, C, Objective C, and Objective C++.
</li>
</ul></div>
<h4>
<a name="predef.introduction.h2"></a>
<span><a name="predef.introduction.design_choices"></a></span><a class="link" href="introduction.html#predef.introduction.design_choices">Design
choices</a>
</h4>
<p>
An important design choice concerns how to represent compiler versions by means
of a single integer number suitable for use in preprocessing directives. Let's
do some calculation. The "basic" signed type for preprocessing constant-expressions
is long in C90 (and C++, as of 2006) and intmax_t in C99. The type long shall
at least be able to represent the number <code class="literal">+2 147 483 647</code>.
This means the most significant digit can only be 0, 1 or 2; and if we want
all decimal digits to be able to vary between 0 and 9, the largest range we
can consider is <code class="literal">[0, 999 999 999]</code>. Distributing evenly, this
means 3 decimal digits for each version number part.
</p>
<p>
So we can:
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
use an uneven distribution or
</li>
<li class="listitem">
use more bits (a larger type) or
</li>
<li class="listitem">
use 3/3/3 and have the particular compiler/platform/stdlib deal with setting
the numbers within the 3-digit range.
</li>
</ol></div>
<p>
It appears relatively safe to go for the first option and set it at 2/2/5.
That covers CodeWarrior and others, which are up to and past 10 for the major
number. Some compilers use the build number in lieu of the patch one; five
digits (which is already reached by VC++ 8) seems a reasonable limit even in
this case.
</p>
<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
<th align="left">Note</th>
</tr>
<tr><td align="left" valign="top"><p>
A 2/2/6 scheme would allow for bigger patch/build numbers at the cost, for
instance, of limiting the major version number to 20 (or, with further constraints,
to 21).
</p></td></tr>
</table></div>
<p>
It might reassure the reader that this decision is actually encoded in one
place in the code; the definition of <code class="computeroutput"><span class="identifier">BOOST_VERSION_NUMBER</span></code>.
</p>
<h4>
<a name="predef.introduction.h3"></a>
<span><a name="predef.introduction.future_work"></a></span><a class="link" href="introduction.html#predef.introduction.future_work">Future
work</a>
</h4>
<p>
Even though the basics of this library are done, there is much work that can
be done:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
Right now we limit the detection of libraries to known built-in predefined
macros, and to guaranteed to exist system and library headers. It might
be interesting to add something like auto-configuration predefs. This way
we can add definitions for user specific libraries and features.
</li>
<li class="listitem">
Along with the above, it might be good to add some user control as to which
headers are included with the top-level header.
</li>
<li class="listitem">
Additionally, even if there is no auto-configure style option.. It would
be good to add optionally included headers so that user can get consistent
version number definitions for libraries they use.
</li>
<li class="listitem">
Having a consistent set of version number definitions opens the door to
improving the user level syntax of libraries that do checks against version
numbers. Specifically Boost Config's <code class="computeroutput"><span class="identifier">BOOST_WORKAROUND</span></code>
macro would benefit from a more readable syntax. As would the <code class="computeroutput"><span class="identifier">BOOST_TESTED_AT</span></code> detail macro.
</li>
<li class="listitem">
And obviously there's lots of work to do in reformulating the existing
Boost libraries to use the Predef library once it's accepted.
</li>
<li class="listitem">
And there's the continuing work of adding definitions for present and future
compilers, platforms, architectures, languages, and libraries.
</li>
</ul></div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2005 Rene Rivera<br>Copyright &#169; 2008-2011 Redshift
Software Inc<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../index.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="using_the_predefs.html"><img src="../images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,875 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Reference</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="../index.html" title="Predef 1.0">
<link rel="up" href="../index.html" title="Predef 1.0">
<link rel="prev" href="adding_new_predefs.html" title="Adding new predefs">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adding_new_predefs.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="predef.reference"></a><a class="link" href="reference.html" title="Reference">Reference</a>
</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="reference.html#predef.reference.boost_architecture_architecture_"><code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_</span></code> architecture macros</a></span></dt>
<dt><span class="section"><a href="reference.html#predef.reference.boost_cxx_compiler_macros"><code class="computeroutput"><span class="identifier">BOOST_CXX_</span></code> compiler macros</a></span></dt>
<dt><span class="section"><a href="reference.html#predef.reference.boost_language_language_standard"><code class="computeroutput"><span class="identifier">BOOST_LANGUAGE_</span></code> language standards macros</a></span></dt>
<dt><span class="section"><a href="reference.html#predef.reference.boost_libc_and_boost_libstd_libr"><code class="computeroutput"><span class="identifier">BOOST_LIBC_</span></code> and <code class="computeroutput"><span class="identifier">BOOST_LIBSTD_</span></code>
library macros</a></span></dt>
<dt><span class="section"><a href="reference.html#predef.reference.boost_os_operating_system_macros"><code class="computeroutput"><span class="identifier">BOOST_OS_</span></code> operating system macros</a></span></dt>
<dt><span class="section"><a href="reference.html#predef.reference.version_definition_macros">Version definition
macros</a></span></dt>
</dl></div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="predef.reference.boost_architecture_architecture_"></a><a class="link" href="reference.html#predef.reference.boost_architecture_architecture_" title="BOOST_ARCHITECTURE_ architecture macros"><code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_</span></code> architecture macros</a>
</h3></div></div></div>
<h5>
<a name="predef.reference.boost_architecture_architecture_.h0"></a>
<span><a name="predef.reference.boost_architecture_architecture_.boost_architecture_alpha"></a></span><a class="link" href="reference.html#predef.reference.boost_architecture_architecture_.boost_architecture_alpha"><code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_ALPHA</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/DEC_Alpha" target="_top">DEC Alpha</a> architecture:
If available versions [4-6] are specifically detected.
</p>
<h5>
<a name="predef.reference.boost_architecture_architecture_.h1"></a>
<span><a name="predef.reference.boost_architecture_architecture_.boost_architecture_amd64"></a></span><a class="link" href="reference.html#predef.reference.boost_architecture_architecture_.boost_architecture_amd64"><code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_AMD64</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/Amd64" target="_top">American Micro Devices AMD
64</a> architecture.
</p>
<h5>
<a name="predef.reference.boost_architecture_architecture_.h2"></a>
<span><a name="predef.reference.boost_architecture_architecture_.boost_architecture_arm"></a></span><a class="link" href="reference.html#predef.reference.boost_architecture_architecture_.boost_architecture_arm"><code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_ARM</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/ARM_architecture" target="_top">ARM</a> architecture.
</p>
<h5>
<a name="predef.reference.boost_architecture_architecture_.h3"></a>
<span><a name="predef.reference.boost_architecture_architecture_.boost_architecture_convex"></a></span><a class="link" href="reference.html#predef.reference.boost_architecture_architecture_.boost_architecture_convex"><code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_CONVEX</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/Convex_Computer" target="_top">Convex Computer</a>
architecture.
</p>
<h5>
<a name="predef.reference.boost_architecture_architecture_.h4"></a>
<span><a name="predef.reference.boost_architecture_architecture_.boost_architecture_ia64"></a></span><a class="link" href="reference.html#predef.reference.boost_architecture_architecture_.boost_architecture_ia64"><code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_IA64</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/Ia64" target="_top">Intel IA-64</a> architecture.
</p>
<h5>
<a name="predef.reference.boost_architecture_architecture_.h5"></a>
<span><a name="predef.reference.boost_architecture_architecture_.boost_architecture_m68k"></a></span><a class="link" href="reference.html#predef.reference.boost_architecture_architecture_.boost_architecture_m68k"><code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_M68K</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/M68k" target="_top">Motorola 68k</a> architecture.
</p>
<h5>
<a name="predef.reference.boost_architecture_architecture_.h6"></a>
<span><a name="predef.reference.boost_architecture_architecture_.boost_architecture_mips"></a></span><a class="link" href="reference.html#predef.reference.boost_architecture_architecture_.boost_architecture_mips"><code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_MIPS</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/MIPS_architecture" target="_top">MIPS</a>
architecture.
</p>
<h5>
<a name="predef.reference.boost_architecture_architecture_.h7"></a>
<span><a name="predef.reference.boost_architecture_architecture_.boost_architecture_parisk"></a></span><a class="link" href="reference.html#predef.reference.boost_architecture_architecture_.boost_architecture_parisk"><code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_PARISK</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/PA-RISC_family" target="_top">HP/PA RISC</a>
architecture.
</p>
<h5>
<a name="predef.reference.boost_architecture_architecture_.h8"></a>
<span><a name="predef.reference.boost_architecture_architecture_.boost_architecture_ppc"></a></span><a class="link" href="reference.html#predef.reference.boost_architecture_architecture_.boost_architecture_ppc"><code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_PPC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/PowerPC" target="_top">PowerPC</a> architecture.
</p>
<h5>
<a name="predef.reference.boost_architecture_architecture_.h9"></a>
<span><a name="predef.reference.boost_architecture_architecture_.boost_architecture_pyramid"></a></span><a class="link" href="reference.html#predef.reference.boost_architecture_architecture_.boost_architecture_pyramid"><code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_PYRAMID</span></code></a>
</h5>
<p>
Pyramid 9810 architecture.
</p>
<h5>
<a name="predef.reference.boost_architecture_architecture_.h10"></a>
<span><a name="predef.reference.boost_architecture_architecture_.boost_architecture_rs6000"></a></span><a class="link" href="reference.html#predef.reference.boost_architecture_architecture_.boost_architecture_rs6000"><code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_RS6000</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/RS/6000" target="_top">RS/6000</a> architecture.
</p>
<h5>
<a name="predef.reference.boost_architecture_architecture_.h11"></a>
<span><a name="predef.reference.boost_architecture_architecture_.boost_architecture_sparc"></a></span><a class="link" href="reference.html#predef.reference.boost_architecture_architecture_.boost_architecture_sparc"><code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_SPARC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/SPARC" target="_top">SPARC</a> architecture.
</p>
<h5>
<a name="predef.reference.boost_architecture_architecture_.h12"></a>
<span><a name="predef.reference.boost_architecture_architecture_.boost_architecture_sh"></a></span><a class="link" href="reference.html#predef.reference.boost_architecture_architecture_.boost_architecture_sh"><code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_SH</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/SuperH" target="_top">SuperH</a> architecture:
If available versions [1-5] are specifically detected.
</p>
<h5>
<a name="predef.reference.boost_architecture_architecture_.h13"></a>
<span><a name="predef.reference.boost_architecture_architecture_.boost_architecture_sys370"></a></span><a class="link" href="reference.html#predef.reference.boost_architecture_architecture_.boost_architecture_sys370"><code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_SYS370</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/System/370" target="_top">System/370</a> architecture.
</p>
<h5>
<a name="predef.reference.boost_architecture_architecture_.h14"></a>
<span><a name="predef.reference.boost_architecture_architecture_.boost_architecture_sys390"></a></span><a class="link" href="reference.html#predef.reference.boost_architecture_architecture_.boost_architecture_sys390"><code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_SYS390</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/System/390" target="_top">System/390</a> architecture.
</p>
<h5>
<a name="predef.reference.boost_architecture_architecture_.h15"></a>
<span><a name="predef.reference.boost_architecture_architecture_.boost_architecture_x86"></a></span><a class="link" href="reference.html#predef.reference.boost_architecture_architecture_.boost_architecture_x86"><code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_X86</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/X86" target="_top">Intel x86</a> architecture:
If available versions [3-6] are specifically detected.
</p>
<h5>
<a name="predef.reference.boost_architecture_architecture_.h16"></a>
<span><a name="predef.reference.boost_architecture_architecture_.boost_architecture_z"></a></span><a class="link" href="reference.html#predef.reference.boost_architecture_architecture_.boost_architecture_z"><code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_Z</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/Z/Architecture" target="_top">z/Architecture</a>
architecture.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="predef.reference.boost_cxx_compiler_macros"></a><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros" title="BOOST_CXX_ compiler macros"><code class="computeroutput"><span class="identifier">BOOST_CXX_</span></code> compiler macros</a>
</h3></div></div></div>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h0"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_borland"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_borland"><code class="computeroutput"><span class="identifier">BOOST_CXX_BORLAND</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Borland</a> compiler. Version
number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h1"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_como"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_como"><code class="computeroutput"><span class="identifier">BOOST_CXX_COMO</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Comeau</a> compiler. Version
number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h2"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_dec"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_dec"><code class="computeroutput"><span class="identifier">BOOST_CXX_DEC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Compaq DEC</a> compiler.
Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h3"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_cygwin"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_cygwin"><code class="computeroutput"><span class="identifier">BOOST_CXX_CYGWIN</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Cygwin</a> compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h4"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_diab"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_diab"><code class="computeroutput"><span class="identifier">BOOST_CXX_DIAB</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Diab</a> compiler. Version
number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h5"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_dmc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_dmc"><code class="computeroutput"><span class="identifier">BOOST_CXX_DMC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Digital Mars</a> compiler.
Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h6"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_sysc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_sysc"><code class="computeroutput"><span class="identifier">BOOST_CXX_SYSC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Dignus SysC</a> compiler.
Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h7"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_edg"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_edg"><code class="computeroutput"><span class="identifier">BOOST_CXX_EDG</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">EDG</a> compiler. Version
number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h8"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_path"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_path"><code class="computeroutput"><span class="identifier">BOOST_CXX_PATH</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Ekopath</a> compiler. Version
number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h9"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_gnuc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_gnuc"><code class="computeroutput"><span class="identifier">BOOST_CXX_GNUC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Gnu C/C++</a> compiler.
Version number available as major, minor, and patch (if available).
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h10"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_gccxml"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_gccxml"><code class="computeroutput"><span class="identifier">BOOST_CXX_GCCXML</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">GCC XML</a> compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h11"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_ghs"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_ghs"><code class="computeroutput"><span class="identifier">BOOST_CXX_GHS</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Green Hills</a> compiler.
Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h12"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_hpacc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_hpacc"><code class="computeroutput"><span class="identifier">BOOST_CXX_HPACC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">HP ACC</a> compiler. Version
number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h13"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_iar"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_iar"><code class="computeroutput"><span class="identifier">BOOST_CXX_IAR</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">IAR</a> compiler. Version
number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h14"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_ibm"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_ibm"><code class="computeroutput"><span class="identifier">BOOST_CXX_IBM</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Iternational Business Mchines</a>
compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h15"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_intel"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_intel"><code class="computeroutput"><span class="identifier">BOOST_CXX_INTEL</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Intel</a> compiler. Version
number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h16"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_kcc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_kcc"><code class="computeroutput"><span class="identifier">BOOST_CXX_KCC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Kai</a> compiler. Version
number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h17"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_llvm"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_llvm"><code class="computeroutput"><span class="identifier">BOOST_CXX_LLVM</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">LLVM</a> compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h18"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_highc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_highc"><code class="computeroutput"><span class="identifier">BOOST_CXX_HIGHC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Metaware HighC</a> compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h19"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_mwerks"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_mwerks"><code class="computeroutput"><span class="identifier">BOOST_CXX_MWERKS</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Metrowerks</a> compiler.
Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h20"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_mri"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_mri"><code class="computeroutput"><span class="identifier">BOOST_CXX_MRI</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Microtec</a> compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h21"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_mingw"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_mingw"><code class="computeroutput"><span class="identifier">BOOST_CXX_MINGW</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">MinGW</a> compiler. Version
number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h22"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_mpw"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_mpw"><code class="computeroutput"><span class="identifier">BOOST_CXX_MPW</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">MPW</a> compiler. Version
number available as major, and minor.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h23"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_palm"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_palm"><code class="computeroutput"><span class="identifier">BOOST_CXX_PALM</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Palm</a> compiler. Version
number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h24"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_pgi"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_pgi"><code class="computeroutput"><span class="identifier">BOOST_CXX_PGI</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">PGI</a> compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h25"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_sgi"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_sgi"><code class="computeroutput"><span class="identifier">BOOST_CXX_SGI</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">SGI Mips-pro</a> compiler.
Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h26"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_sunpro"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_sunpro"><code class="computeroutput"><span class="identifier">BOOST_CXX_SUNPRO</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Sun Pro</a> compiler. Version
number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h27"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_tendra"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_tendra"><code class="computeroutput"><span class="identifier">BOOST_CXX_TENDRA</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Tendra</a> compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h28"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_msvc"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_msvc"><code class="computeroutput"><span class="identifier">BOOST_CXX_MSVC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Microsoft Visual C/C++</a>
compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h29"></a>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_watcom"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_watcom"><code class="computeroutput"><span class="identifier">BOOST_CXX_WATCOM</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Watcom</a> compiler. Version
number available as major, and minor.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="predef.reference.boost_language_language_standard"></a><a class="link" href="reference.html#predef.reference.boost_language_language_standard" title="BOOST_LANGUAGE_ language standards macros"><code class="computeroutput"><span class="identifier">BOOST_LANGUAGE_</span></code> language standards macros</a>
</h3></div></div></div>
<h5>
<a name="predef.reference.boost_language_language_standard.h0"></a>
<span><a name="predef.reference.boost_language_language_standard.boost_language_objc"></a></span><a class="link" href="reference.html#predef.reference.boost_language_language_standard.boost_language_objc"><code class="computeroutput"><span class="identifier">BOOST_LANGUAGE_OBJC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/Objective-C" target="_top">Objective-C</a>
language.
</p>
<h5>
<a name="predef.reference.boost_language_language_standard.h1"></a>
<span><a name="predef.reference.boost_language_language_standard.boost_language_stdc"></a></span><a class="link" href="reference.html#predef.reference.boost_language_language_standard.boost_language_stdc"><code class="computeroutput"><span class="identifier">BOOST_LANGUAGE_STDC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/C_(programming_language)" target="_top">Standard
C</a> language. If available, the year of the standard is detected as
0.0.YYYY.
</p>
<h5>
<a name="predef.reference.boost_language_language_standard.h2"></a>
<span><a name="predef.reference.boost_language_language_standard.boost_language_stdcpp"></a></span><a class="link" href="reference.html#predef.reference.boost_language_language_standard.boost_language_stdcpp"><code class="computeroutput"><span class="identifier">BOOST_LANGUAGE_STDCPP</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/C%2B%2B" target="_top">Standard C++</a> language.
If available, the year of the standard is detected as 0.0.YYYY. Because of
the way the C++ standardization process works the defined version year will
not be the commonly known year standard. Specifically the defined versions
will be:
</p>
<div class="table">
<a name="predef.reference.boost_language_language_standard.detected_version_number_vs_c_sta"></a><p class="title"><b>Table&#160;1.&#160;Detected Version Number vs. C++ Standard Year</b></p>
<div class="table-contents"><table class="table" summary="Detected Version Number vs. C++ Standard Year">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Detected Version Number
</p>
</th>
<th>
<p>
Standard Year
</p>
</th>
<th>
<p>
C++ Standard
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
0.0.1997
</p>
</td>
<td>
<p>
1998
</p>
</td>
<td>
<p>
ISO/IEC 14882:1998
</p>
</td>
</tr>
<tr>
<td>
<p>
0.0.?
</p>
</td>
<td>
<p>
2003
</p>
</td>
<td>
<p>
ISO/IEC 14882:2003
</p>
</td>
</tr>
<tr>
<td>
<p>
0.0.?
</p>
</td>
<td>
<p>
2007
</p>
</td>
<td>
<p>
ISO/IEC TR 19768:2007
</p>
</td>
</tr>
<tr>
<td>
<p>
0.0.2011
</p>
</td>
<td>
<p>
2011
</p>
</td>
<td>
<p>
ISO/IEC 14882:2011
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><h5>
<a name="predef.reference.boost_language_language_standard.h3"></a>
<span><a name="predef.reference.boost_language_language_standard.boost_language_stdcppcli"></a></span><a class="link" href="reference.html#predef.reference.boost_language_language_standard.boost_language_stdcppcli"><code class="computeroutput"><span class="identifier">BOOST_LANGUAGE_STDCPPCLI</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/C%2B%2B/CLI" target="_top">Standard C++/CLI</a>
language. If available, the year of the standard is detected as 0.0.YYYY.
</p>
<h5>
<a name="predef.reference.boost_language_language_standard.h4"></a>
<span><a name="predef.reference.boost_language_language_standard.boost_language_stdecpp"></a></span><a class="link" href="reference.html#predef.reference.boost_language_language_standard.boost_language_stdecpp"><code class="computeroutput"><span class="identifier">BOOST_LANGUAGE_STDECPP</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/Embedded_C%2B%2B" target="_top">Standard Embedded
C++</a> language.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="predef.reference.boost_libc_and_boost_libstd_libr"></a><a class="link" href="reference.html#predef.reference.boost_libc_and_boost_libstd_libr" title="BOOST_LIBC_ and BOOST_LIBSTD_ library macros"><code class="computeroutput"><span class="identifier">BOOST_LIBC_</span></code> and <code class="computeroutput"><span class="identifier">BOOST_LIBSTD_</span></code>
library macros</a>
</h3></div></div></div>
<h5>
<a name="predef.reference.boost_libc_and_boost_libstd_libr.h0"></a>
<span><a name="predef.reference.boost_libc_and_boost_libstd_libr.boost_libc_gnu"></a></span><a class="link" href="reference.html#predef.reference.boost_libc_and_boost_libstd_libr.boost_libc_gnu"><code class="computeroutput"><span class="identifier">BOOST_LIBC_GNU</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/Glibc" target="_top">GNU glibc</a> Standard
C library. Version number available as major, and minor.
</p>
<h5>
<a name="predef.reference.boost_libc_and_boost_libstd_libr.h1"></a>
<span><a name="predef.reference.boost_libc_and_boost_libstd_libr.boost_libc_uc"></a></span><a class="link" href="reference.html#predef.reference.boost_libc_and_boost_libstd_libr.boost_libc_uc"><code class="computeroutput"><span class="identifier">BOOST_LIBC_UC</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/Uclibc" target="_top">uClibc</a> Standard
C library. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_libc_and_boost_libstd_libr.h2"></a>
<span><a name="predef.reference.boost_libc_and_boost_libstd_libr.boost_libc_vms"></a></span><a class="link" href="reference.html#predef.reference.boost_libc_and_boost_libstd_libr.boost_libc_vms"><code class="computeroutput"><span class="identifier">BOOST_LIBC_VMS</span></code></a>
</h5>
<p>
VMS libc Standard C library. Version number available as major, minor, and
patch.
</p>
<h5>
<a name="predef.reference.boost_libc_and_boost_libstd_libr.h3"></a>
<span><a name="predef.reference.boost_libc_and_boost_libstd_libr.boost_libc_zos"></a></span><a class="link" href="reference.html#predef.reference.boost_libc_and_boost_libstd_libr.boost_libc_zos"><code class="computeroutput"><span class="identifier">BOOST_LIBC_ZOS</span></code></a>
</h5>
<p>
z/OS libc Standard C library. Version number available as major, minor, and
patch.
</p>
<h5>
<a name="predef.reference.boost_libc_and_boost_libstd_libr.h4"></a>
<span><a name="predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_cxx"></a></span><a class="link" href="reference.html#predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_cxx"><code class="computeroutput"><span class="identifier">BOOST_LIBSTD_CXX</span></code></a>
</h5>
<p>
<a href="http://libcxx.llvm.org/" target="_top">libc++</a> C++ Standard Library.
If available version number as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_libc_and_boost_libstd_libr.h5"></a>
<span><a name="predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_dinkumware"></a></span><a class="link" href="reference.html#predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_dinkumware"><code class="computeroutput"><span class="identifier">BOOST_LIBSTD_DINKUMWARE</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/Dinkumware" target="_top">Dinkumware</a> Standard
C++ Library. If available version number as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_libc_and_boost_libstd_libr.h6"></a>
<span><a name="predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_como"></a></span><a class="link" href="reference.html#predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_como"><code class="computeroutput"><span class="identifier">BOOST_LIBSTD_COMO</span></code></a>
</h5>
<p>
<a href="http://www.comeaucomputing.com/libcomo/" target="_top">Comeau Computing</a>
Standard C++ Library. Version number available as major.
</p>
<h5>
<a name="predef.reference.boost_libc_and_boost_libstd_libr.h7"></a>
<span><a name="predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_msipl"></a></span><a class="link" href="reference.html#predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_msipl"><code class="computeroutput"><span class="identifier">BOOST_LIBSTD_MSIPL</span></code></a>
</h5>
<p>
<a href="http://modena.us/" target="_top">Modena Software Lib++</a> Standard C++
Library.
</p>
<h5>
<a name="predef.reference.boost_libc_and_boost_libstd_libr.h8"></a>
<span><a name="predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_msl"></a></span><a class="link" href="reference.html#predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_msl"><code class="computeroutput"><span class="identifier">BOOST_LIBSTD_MSL</span></code></a>
</h5>
<p>
<a href="http://www.freescale.com/" target="_top">Metrowerks</a> Standard C++ Library.
Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_libc_and_boost_libstd_libr.h9"></a>
<span><a name="predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_rw"></a></span><a class="link" href="reference.html#predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_rw"><code class="computeroutput"><span class="identifier">BOOST_LIBSTD_RW</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Roguewave Standard C++</a>
library. If available version number as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_libc_and_boost_libstd_libr.h10"></a>
<span><a name="predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_sgi"></a></span><a class="link" href="reference.html#predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_sgi"><code class="computeroutput"><span class="identifier">BOOST_LIBSTD_SGI</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">SGI Standard C++</a> library.
If available version number as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_libc_and_boost_libstd_libr.h11"></a>
<span><a name="predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_gnu"></a></span><a class="link" href="reference.html#predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_gnu"><code class="computeroutput"><span class="identifier">BOOST_LIBSTD_GNU</span></code></a>
</h5>
<p>
<a href="http://gcc.gnu.org/libstdc++/" target="_top">GNU libstdc++</a> Standard
C++ library. Version number available as year (from 1970), month, and day.
</p>
<h5>
<a name="predef.reference.boost_libc_and_boost_libstd_libr.h12"></a>
<span><a name="predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_stlport"></a></span><a class="link" href="reference.html#predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_stlport"><code class="computeroutput"><span class="identifier">BOOST_LIBSTD_STLPORT</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">STLport Standard C++</a>
library. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_libc_and_boost_libstd_libr.h13"></a>
<span><a name="predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_ibm"></a></span><a class="link" href="reference.html#predef.reference.boost_libc_and_boost_libstd_libr.boost_libstd_ibm"><code class="computeroutput"><span class="identifier">BOOST_LIBSTD_IBM</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">IBM VACPP Standard C++</a>
library.
</p>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="predef.reference.boost_os_operating_system_macros"></a><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros" title="BOOST_OS_ operating system macros"><code class="computeroutput"><span class="identifier">BOOST_OS_</span></code> operating system macros</a>
</h3></div></div></div>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h0"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os"><code class="computeroutput"><span class="identifier">BOOST_OS_</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">AIX</a> operating system.
Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h1"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_amigaos"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_amigaos"><code class="computeroutput"><span class="identifier">BOOST_OS_AMIGAOS</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">AmigaOS</a> operating system.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h2"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_beos"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_beos"><code class="computeroutput"><span class="identifier">BOOST_OS_BEOS</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Be</a> operating system.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h3"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_bsd"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_bsd"><code class="computeroutput"><span class="identifier">BOOST_OS_BSD</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">BSD</a> operating system.
</p>
<p>
BSD has various branch operating systems possible and each detected individually.
This detects the following variations and sets a specific version number
macro to match:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_OS_DRAGONFLY_BSD</span></code>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Dragonfly BSD</a>
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_OS_FREE_BSD</span></code> <a href="http://en.wikipedia.org/wiki/XXX" target="_top">Free BSD</a>
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_OS_BSDI_BSD</span></code> <a href="http://en.wikipedia.org/wiki/XXX" target="_top">BSDI</a>
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_OS_NET_BSD</span></code> <a href="http://en.wikipedia.org/wiki/XXX" target="_top">Net BSD</a>
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_OS_OPEN_BSD</span></code> <a href="http://en.wikipedia.org/wiki/XXX" target="_top">Open BSD</a>
</li>
</ul></div>
<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
<th align="left">Note</th>
</tr>
<tr><td align="left" valign="top"><p>
The general <code class="computeroutput"><span class="identifier">BOOST_OS_BSD</span></code>
is set in all cases to indicate some form of BSD. If the above variants
is detected the corresponding macro is also set.
</p></td></tr>
</table></div>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="predef.reference.version_definition_macros"></a><a class="link" href="reference.html#predef.reference.version_definition_macros" title="Version definition macros">Version definition
macros</a>
</h3></div></div></div>
<h5>
<a name="predef.reference.version_definition_macros.h0"></a>
<span><a name="predef.reference.version_definition_macros.boost_version_number"></a></span><a class="link" href="reference.html#predef.reference.version_definition_macros.boost_version_number"><code class="computeroutput"><span class="identifier">BOOST_VERSION_NUMBER</span></code></a>
</h5>
<p>
</p>
<pre class="programlisting"><span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="identifier">major</span><span class="special">,</span><span class="identifier">minor</span><span class="special">,</span><span class="identifier">patch</span><span class="special">)</span>
</pre>
<p>
</p>
<p>
Defines standard version numbers, with these properties:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
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.
</li>
<li class="listitem">
The <code class="computeroutput"><span class="identifier">major</span></code> number can
be in the [0,99] range.
</li>
<li class="listitem">
The <code class="computeroutput"><span class="identifier">minor</span></code> number can
be in the [0,99] range.
</li>
<li class="listitem">
The <code class="computeroutput"><span class="identifier">patch</span></code> number can
be in the [0,99999] range.
</li>
<li class="listitem">
Values can be specified in any base. As the defined value is an constant
expression.
</li>
<li class="listitem">
Value can be directly used in both preprocessor and compiler expressions
for comparison to other similarly defined values.
</li>
<li class="listitem">
The implementation enforces the individual ranges for the major, minor,
and patch numbers. And values over the ranges are truncated (modulo).
</li>
</ul></div>
<h5>
<a name="predef.reference.version_definition_macros.h1"></a>
<span><a name="predef.reference.version_definition_macros.boost_predef_make_f_macros"></a></span><a class="link" href="reference.html#predef.reference.version_definition_macros.boost_predef_make_f_macros"><code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_F</span><span class="special">..</span></code>
macros</a>
</h5>
<p>
These set of macros decompose common vendor version number macros which are
composed of hexadecimal digits. The naming convention indicates what the
format of the vendor version number. Where "<code class="computeroutput"><span class="identifier">F</span></code>"
indicates a hexadecimal digit, "<code class="computeroutput"><span class="identifier">_</span></code>"
separates the major/minor/patch parts of the version number, and "<code class="computeroutput"><span class="number">0</span></code>" indicates an ignored hexadecimal digit.
Macros are:
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDER_MAKE_F_F_F</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_FF_F_F</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_F_F_FF</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_FF_FF</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_F_FF_FFFF</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_FF_FF_F</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_F_FF_FF_000</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<h5>
<a name="predef.reference.version_definition_macros.h2"></a>
<span><a name="predef.reference.version_definition_macros.boost_predef_make_n_macros"></a></span><a class="link" href="reference.html#predef.reference.version_definition_macros.boost_predef_make_n_macros"><code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_N</span><span class="special">..</span></code>
macros</a>
</h5>
<p>
These set of macros decompose common vendor version number macros which are
composed of decimal digits. The naming convention indicates what the format
of the vendor version number. Where "<code class="computeroutput"><span class="identifier">N</span></code>"
indicates a decimal digit, "<code class="computeroutput"><span class="identifier">_</span></code>"
separates the major/minor/patch parts of the version number, and "<code class="computeroutput"><span class="number">0</span></code>" indicates an ignored decimal digit.
Macros are:
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_N_N_N</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_NN_NN_NN</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_NN_NN</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_N_N_NN</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_N_NN_NN</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_N_N_N_000</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_N_NN_000</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_NN_NN_00_NN_00</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_NN_00</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PREDEF_MAKE_YYYY_MM_DD</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
</p>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2005 Rene Rivera<br>Copyright &#169; 2008-2011 Redshift
Software Inc<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="adding_new_predefs.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,218 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Using the predefs</title>
<link rel="stylesheet" href="../boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="../index.html" title="Predef 1.0">
<link rel="up" href="../index.html" title="Predef 1.0">
<link rel="prev" href="introduction.html" title="Introduction">
<link rel="next" href="adding_new_predefs.html" title="Adding new predefs">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="introduction.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="adding_new_predefs.html"><img src="../images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="predef.using_the_predefs"></a><a class="link" href="using_the_predefs.html" title="Using the predefs">Using the predefs</a>
</h2></div></div></div>
<p>
To use the automatically defined predefs one needs to only include the single
top-level header:
</p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span>
</pre>
<p>
</p>
<p>
This defines <span class="bold"><strong>all</strong></span> the version macros known
to the library. For each macro it will be defined to either a <span class="emphasis"><em>zero</em></span>
valued expression for when the particular item is not detected, and to a <span class="emphasis"><em>positive</em></span>
value if it is detected. The predef macros fall onto the five categories each
with macros of a particular prefix:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_ARCHITECTURE_</span></code>for
system/CPU architecture one is compiling for.
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_CXX_</span></code> for the compiler
one is using.
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_LANGUAGE_</span></code> for language
standards one is compiling against.
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_LIBC_</span></code> and <code class="computeroutput"><span class="identifier">BOOST_LIBSTD_</span></code> for the C and C++ standard
library in use.
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">BOOST_OS_</span></code> for the operating
system we are compiling to.
</li>
</ul></div>
<div class="note"><table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../images/note.png"></td>
<th align="left">Note</th>
</tr>
<tr><td align="left" valign="top"><p>
The detected definitions are for the configuration one is targeting during
the compile. In particular in a cross-compile this means the target system,
and not the host system.
</p></td></tr>
</table></div>
<p>
One uses the individual definitions to compare against specific versions by
comparing against the <code class="computeroutput"><span class="identifier">BOOST_VERSION_NUMBER</span></code>
macro. For example, to make a choice based on the version of the GCC C++ compiler
one would:
</p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
<span class="special">{</span>
<span class="keyword">if</span> <span class="special">(</span><span class="identifier">BOOST_CXX_GNUC</span> <span class="special">&gt;=</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">4</span><span class="special">,</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">))</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"GCC compiler is at least version 4.0.0"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="keyword">else</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"GCC compiler is at older than version 4.0.0, or not a GCC compiler"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
<span class="special">}</span>
</pre>
<p>
</p>
<p>
As you might notice above the <code class="computeroutput"><span class="keyword">else</span></code>
clause also covers the case where we the particular compiler is not detected.
But one can make the test specifically test for the detection. All predef definitions
are defined as a zero (0) expression when not detected. Hence one could use
the detection with a natural single condition. For example:
</p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
<span class="special">{</span>
<span class="keyword">if</span> <span class="special">(</span><span class="identifier">BOOST_CXX_GNUC</span><span class="special">)</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"This is GNU GCC!"</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="keyword">else</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Not GNU GCC."</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
<span class="special">}</span>
</pre>
<p>
</p>
<p>
And since the predef's are preprocessor definitions the same is possible from
the preprocessor:
</p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">predef</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#if</span> <span class="identifier">BOOST_CXX_GNUC</span>
<span class="preprocessor">#if</span> <span class="identifier">BOOST_CXX_GNUC</span> <span class="special">&gt;=</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">4</span><span class="special">,</span><span class="number">0</span><span class="special">,</span><span class="number">0</span><span class="special">)</span>
<span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">the_compiler</span> <span class="special">=</span> <span class="string">"GNU GCC, of at least version 4."</span>
<span class="preprocessor">#else</span>
<span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">the_compiler</span> <span class="special">=</span> <span class="string">"GNU GCC, less than version 4."</span>
<span class="preprocessor">#endif</span>
<span class="preprocessor">#else</span>
<span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">the_compiler</span> <span class="special">=</span> <span class="string">"Not GNU GCC."</span>
<span class="preprocessor">#endif</span>
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
<span class="special">{</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">the_compiler</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
<span class="special">}</span>
</pre>
<p>
</p>
<h4>
<a name="predef.using_the_predefs.h0"></a>
<span><a name="predef.using_the_predefs.using_the_boost_version_number_m"></a></span><a class="link" href="using_the_predefs.html#predef.using_the_predefs.using_the_boost_version_number_m">Using the
<code class="computeroutput"><span class="identifier">BOOST_VERSION_NUMBER</span></code> macro</a>
</h4>
<p>
All the predefs are defined to be a use of the <code class="computeroutput"><span class="identifier">BOOST_VERSION_NUMBER</span></code>
macro. The macro takes individual major, minor, and patch value expressions:
</p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span> <span class="identifier">major</span><span class="special">,</span> <span class="identifier">minor</span><span class="special">,</span> <span class="identifier">patch</span> <span class="special">)</span> <span class="special">...</span>
</pre>
<p>
</p>
<p>
The arguments are:
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
Major version number, as a constant value expression in the range [0,99].
</li>
<li class="listitem">
Minor version number, as a constant value expression in the range [0,99].
</li>
<li class="listitem">
Patch-level version number, as a constant value expression in the range
[0,99999].
</li>
</ol></div>
<p>
The ranges for each are "enforced" by the use of a modulo ("%"),
i.e. truncation, as opposed to a clamp. And hence this means that the limits
are enforced only enough to keep from having out-of-range problems. But not
enough to prevent other kinds of problems. Like exceeding the range and geting
false detections, or non-detections. It is up to the individual predefs to
ensure correct usage beyond the range guarantee.
</p>
<p>
The values for the arguments can be any preprocessor valid constant value expression.
Only constant value arithmetic is used in the definition of the <code class="computeroutput"><span class="identifier">BOOST_VERSION_NUMBER</span></code> macro and in any of
the other predef macros. This means that any allowed base is possible, i.e.
binary, octal, decimal, and hexadecimal. For example:
</p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">MY_APPLICATION_VERSION_NUMBER</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">2</span><span class="special">,</span><span class="number">0xA</span><span class="special">,</span><span class="number">015</span><span class="special">)</span>
</pre>
<p>
</p>
<p>
Is equivalent to:
</p>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">MY_APPLICATION_VERSION_NUMBER</span> <span class="identifier">BOOST_VERSION_NUMBER</span><span class="special">(</span><span class="number">2</span><span class="special">,</span><span class="number">10</span><span class="special">,</span><span class="number">13</span><span class="special">)</span>
</pre>
<p>
</p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2005 Rene Rivera<br>Copyright &#169; 2008-2011 Redshift
Software Inc<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="introduction.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="adding_new_predefs.html"><img src="../images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -0,0 +1,11 @@
/*============================================================================
Copyright 2003-2004 Douglas Gregor
Distributed under the Boost Software License, Version 1.0. (See accompany-
ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
============================================================================*/
PRE.synopsis {
background-color: #e0ffff;
border: thin solid blue;
padding: 1em
}

View File

@ -9,9 +9,12 @@
(See accompanying file LICENSE_1_0.txt or copy at
[@http://www.boost.org/LICENSE_1_0.txt])
]
[source-mode teletype]
[source-mode c++]
]
[warning This is a *proposed* Boost Libnrary and *is not* part of the
Boost C++ Libraries.]
[section Introduction]
This library defines a set of compiler, architecture, operating system,
@ -49,7 +52,7 @@ consistently represent their version. This includes:
The current Predef library is now, both an independent library, and expanded
in scope. It includes detection and definition of architectures, compilers,
libraries, and operating systems. The key benefits are:
languages, libraries, and operating systems. The key benefits are:
* Version numbers that are always defined so that one doesn't have to guard
with `#ifdef`.
@ -89,7 +92,7 @@ for instance, of limiting the major version number to 20 (or, with further
constraints, to 21).]
It might reassure the reader that this decision is actually encoded in one place
in the code; the definition of BOOST_VERSION_NUMBER.
in the code; the definition of `BOOST_VERSION_NUMBER`.
[heading Future work]
@ -112,7 +115,7 @@ done:
* And obviously there's lots of work to do in reformulating the existing
Boost libraries to use the Predef library once it's accepted.
* And there's the continuing work of adding definitions for present and
future compilers, platforms, architectures, and libraries.
future compilers, platforms, architectures, languages, and libraries.
[endsect] [/Introduction]
@ -128,11 +131,12 @@ single top-level header:
This defines [*all] the version macros known to the library. For each
macro it will be defined to either a /zero/ valued expression for when
the particular item is not detected, and to a /positive/ value if it
is detected. The predef macros fall onto the four categories each with
is detected. The predef macros fall onto the five categories each with
macros of a particular prefix:
* `BOOST_ARCHITECTURE_`for system/CPU architecture one is compiling for.
* `BOOST_CXX_` for the compiler one is using.
* `BOOST_LANGUAGE_` for language standards one is compiling against.
* `BOOST_LIBC_` and `BOOST_LIBSTD_` for the C and C++ standard library
in use.
* `BOOST_OS_` for the operating system we are compiling to.
@ -141,41 +145,149 @@ macros of a particular prefix:
during the compile. In particular in a cross-compile this means the target
system, and not the host system.]
One uses the individual definitions to compare against specific versions
by comparing against the `BOOST_VERSION_NUMBER` macro. For example, to make
a choice based on the version of the GCC C++ compiler one would:
``
#include <boost/predef.h>
#include <iostream>
#if (APPLICATION_VERSION >= BOOST_VERSION_NUMBER(1,0,0))
bool application_is_at_least_version_1 = true;
#else
bool application_is_at_least_version_1 = false;
#endif
int main()
{
if (application_is_at_least_version_1)
std::cout << "Application is at least version 1.0.0" << std::endl;
if (APPLICATION_VERSION >= BOOST_VERSION_NUMBER(2,0,0))
std::cout << "Application is at least version 2.0.0" << std::endl;
if (BOOST_CXX_GNUC >= BOOST_VERSION_NUMBER(4,0,0))
std::cout << "GCC compiler is at least version 4.0.0" << std::endl;
else
std::cout << "GCC compiler is at older than version 4.0.0, or not a GCC compiler" << std::endl;
return 0;
}
``
[heading Using existing version predefs]
As you might notice above the `else` clause also covers the case where
we the particular compiler is not detected. But one can make the test
specifically test for the detection. All predef definitions are defined
as a zero (0) expression when not detected. Hence one could use the
detection with a natural single condition. For example:
``
#include <boost/predef.h>
#include <iostream>
int main()
{
if (BOOST_CXX_GNUC)
std::cout << "This is GNU GCC!" << std::endl;
else
std::cout << "Not GNU GCC." << std::endl;
return 0;
}
``
And since the predef's are preprocessor definitions the same is possible
from the preprocessor:
``
#include <boost/predef.h>
#include <iostream>
#if BOOST_CXX_GNUC
#if BOOST_CXX_GNUC >= BOOST_VERSION_NUMBER(4,0,0)
const char * the_compiler = "GNU GCC, of at least version 4."
#else
const char * the_compiler = "GNU GCC, less than version 4."
#endif
#else
const char * the_compiler = "Not GNU GCC."
#endif
int main()
{
std::cout << the_compiler << std::endl;
return 0;
}
``
[heading Using the `BOOST_VERSION_NUMBER` macro]
All the predefs are defined to be a use of the `BOOST_VERSION_NUMBER` macro.
The macro takes individual major, minor, and patch value expressions:
``
#define BOOST_VERSION_NUMBER( major, minor, patch ) ...
``
The arguments are:
# Major version number, as a constant value expression in the range [0,99].
# Minor version number, as a constant value expression in the range [0,99].
# Patch-level version number, as a constant value expression in the
range [0,99999].
The ranges for each are "enforced" by the use of a modulo ("%"), i.e. truncation,
as opposed to a clamp. And hence this means that the limits are enforced only
enough to keep from having out-of-range problems. But not enough to prevent
other kinds of problems. Like exceeding the range and geting false detections,
or non-detections. It is up to the individual predefs to ensure correct
usage beyond the range guarantee.
The values for the arguments can be any preprocessor valid constant value expression.
Only constant value arithmetic is used in the definition of the `BOOST_VERSION_NUMBER`
macro and in any of the other predef macros. This means that any allowed base is
possible, i.e. binary, octal, decimal, and hexadecimal. For example:
``
#define MY_APPLICATION_VERSION_NUMBER BOOST_VERSION_NUMBER(2,0xA,015)
``
Is equivalent to:
``
#define MY_APPLICATION_VERSION_NUMBER BOOST_VERSION_NUMBER(2,10,13)
``
[endsect]
[section Adding new predefs]
We know that a library like this one will be an eternal work-in-progress. And
as such we expect, and look forward to, others contributing corrections and
additions to the predefs. With that in mind we need to keep a consistent way
of defining the new predefs. Hence all current, and future, predefs follow
the same structure and requirements.
[heading Requirements of the header]
All predefs need to follow a set of requirements:
* The headers must use the Boost Software License.
* The predef must, by default, be defined as `BOOST_VERSION_NUMBER(0,0,0)`.
* The predef must be redefined to a non-zero value once detected.
* The predef must, by default, be defined to `BOOST_VERSION_NUMBER(0,0,1)`
when the predef is detected.
* If possible, the predef will be defined as the version number detected.
* The predef must declare itself, after being defined, for the testing
system.
And there are some extra guidelines that predef headers should follow:
* The detection should avoid including extra headers that might otherwise
not be included by default.
* If the detection must include a header, prefer guarding it within the
detection if possible.
* If the detection must include a headers unconditionally, and has a choice
of headers to include, prefer the ones with the least impact. I.e.
include the one with the minimal set of definitions and other
dependencies.
[heading Structure of the header]
For general consistency it's suggested that new predef headers follow the
structure below, as current predef headers do. First we have the copyright
and license statement, followed by the include guard:
``
/*
Copyright Jane Doe 20xx
Copyright Jane Doe YYYY
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -183,49 +295,117 @@ http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_PREDEF_category_tag_H
#define BOOST_PREDEF_category_tag_H
``
Depending on how you are defining the predef you will at minimum have
to include the `version_number.h` header. But you might also want to
include the `make.h` header for the version number decomposing utility
macros:
``
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
``
The Predef library uses Quickbook for documentation and for the
individual predefs to appear in the reference section we add in-code
documentation followed by the zero-value default definition of the
predef macro. We strongly recommend this particular placement of the
documentation and default definition because some development
environments automatically interpret this and provide in-line help
for the macro. In particular this works for the popular Eclipse IDE:
``
/*`
[heading `BOOST_category_tag`]
Documentation about what is detected.
*/
#define BOOST_category_tag BOOST_VERSION_NUMBER(0,0,0)
``
#if defined(condition)
Next is the detection and definition of the particular predef. The
structure for this is to do a single overall check (`condition_a`) and
place the further version detection inside this. The first action inside
the overall check is to "`#undef BOOST_category_tag`" which undefines
the zero-value default. The rest is up to the you how to do the checks
for defining the version. But at minimum it must
"`#define BOOST_category_tag BOOST_VERSION_NUMBER(0,0,1)`" as the fallback
to minimally indicate that the predef was detected:
``
#if (condition_a)
#undef BOOST_category_tag
#if defined(condition)
#define BOOST_category_tag BOOST_VERSION_NUMBER(1,0,0)
#elif defined(__alpha_ev5__)
#define BOOST_category_tag BOOST_VERSION_NUMBER(2,0,0)
#if (condition_b)
#define BOOST_category_tag BOOST_VERSION_NUMBER(major,minor,patch)
#else
#define BOOST_category_tag BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
``
The testing of the predef macros is automated to generate checks for all
the defined predefs, whether detected or not. To do this we need to
declare the predef to the test system. This declaration is empty for
regular use. And during the test programs theexpand out specially
to create informational output:
``
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_categiry_tag,"Name")
BOOST_PREDEF_DECLARE_TEST(BOOST_category_tag,"Name")
``
And, of course, we last need to close out the include guard:
``
#endif
``
[heading Using utility pattern macros]
By including:
``
#include <boost/predef/make.h>
``
One will get a set utlity macros to decompose common version
macros as defined by compilers. For example the EDG compiler
uses a simple 3-digit version macro (M,N,P). It can be decomesed
and defined as:
``
#define BOOST_CXX_EDG BOOST_PREDEF_MAKE_N_N_N(__EDG_VERSION__)
``
The decomposition macros are split into three types: decimal
decomposition, hexadecimal decomposition, and date decomposition.
They follow the format of using "N" for decimal, "F" for hexadecimal,
and "Y", "M", "D" for dates.
[endsect]
[section Reference]
[section `BOOST_ARCHITECTURE_` architecture macros]
[/import ../../../boost/predef/architecture/.*\.h]
[include ../../../boost/predef/architecture/*.h]
[endsect]
[section `BOOST_CXX_` compiler macros]
[/import ../../../boost/predef/compiler/.*\.h]
[include ../../../boost/predef/compiler/*.h]
[endsect]
[section `BOOST_LANGUAGE_` language standards macros]
[include ../../../boost/predef/language/*.h]
[endsect]
[section `BOOST_LIBC_` and `BOOST_LIBSTD_` library macros]
[/import ../../../boost/predef/library/.*/.*\.h]
[include ../../../boost/predef/library/*/*.h]
[endsect]
[section `BOOST_OS_` operating system macros]
[/import ../../../boost/predef/os/.*\.h]
[include ../../../boost/predef/os/*.h]
[endsect]
[section Version definition macros]

View File

@ -11,9 +11,11 @@ project test
using testing ;
run info_as_cpp.cpp ;
run info_as_c.c ;
run info_as_objcpp.mm ;
run info_as_objc.m ;
run version.cpp ;
run make.cpp ;
test-suite config :
[ run info_as_cpp.cpp : : : <test-info>always_show_run_output ]
[ run info_as_c.c : : : <test-info>always_show_run_output ]
[ run info_as_objcpp.mm : : : <test-info>always_show_run_output ]
[ run info_as_objc.m : : : <test-info>always_show_run_output ]
[ run version.cpp ]
[ run make.cpp ]
;