Last update, for now, of the predefs. They are all now documented and checked against current knowledge of detection.

git-svn-id: http://svn.boost.org/svn/boost/sandbox/predef@75949 b8fc166d-592f-0410-95f2-cb63ce0dd405
This commit is contained in:
Rene Rivera
2011-12-15 03:48:37 +00:00
parent 8bc199d45c
commit 86cc3136ad
61 changed files with 564 additions and 415 deletions

View File

@ -9,6 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_H
#include <boost/predef/compiler/borland.h>
#include <boost/predef/compiler/clang.h>
#include <boost/predef/compiler/comeau.h>
#include <boost/predef/compiler/compaq.h>
#include <boost/predef/compiler/cygwin.h>

View File

@ -14,18 +14,22 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_BORLAND`]
[@http://en.wikipedia.org/wiki/XXX Borland] compiler.
[@http://en.wikipedia.org/wiki/C_plus_plus_builder Borland C++] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_BORLAND BOOST_VERSION_NUMBER(0,0,0)
#if defined(__BORLANDC__)
#if defined(__BORLANDC__) || defined(__CODEGEARC__)
#undef BOOST_CXX_BORLAND
#define BOOST_CXX_BORLAND BOOST_PREDEF_MAKE_FF_F_F(__BORLANDC__)
#if defined(__CODEGEARC__)
#define BOOST_CXX_BORLAND BOOST_PREDEF_MAKE_FF_F_F(__CODEGEARC__)
#else
#define BOOST_CXX_BORLAND BOOST_PREDEF_MAKE_FF_F_F(__BORLANDC__)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_BORLAND,"Borland")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_BORLAND,"Borland C++")
#endif

View File

@ -0,0 +1,31 @@
/*
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)
*/
#ifndef BOOST_PREDEF_COMPILER_CLANG_H
#define BOOST_PREDEF_COMPILER_CLANG_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_CXX_CLANG`]
[@http://en.wikipedia.org/wiki/Clang Clang] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_CLANG BOOST_VERSION_NUMBER(0,0,0)
#if defined(__clang__)
#undef BOOST_CXX_CLANG
#define BOOST_CXX_CLANG BOOST_VERSION_NUMBER(__clang_major__,__clang_minor__,__clang_patchlevel__)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_CLANG,"Clang")
#endif

View File

@ -16,16 +16,20 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_COMO`]
[@http://en.wikipedia.org/wiki/XXX Comeau] compiler.
[@http://en.wikipedia.org/wiki/Comeau_C/C%2B%2B Comeau C++] 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__)
#if defined(__CONO_VERSION__)
#define BOOST_CXX_COMO BOOST_PREDEF_MAKE_F_F_F(__COMO_VERSION__)
#else
#define BOOST_CXX_COMO BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_COMO,"Comeau")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_COMO,"Comeau C++")
#endif

View File

@ -14,21 +14,23 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_DEC`]
[@http://en.wikipedia.org/wiki/XXX Compaq DEC] compiler.
[@http://www.openvms.compaq.com/openvms/brochures/deccplus/ Compaq C/C++] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_DEC BOOST_VERSION_NUMBER(0,0,0)
#if defined(__DECC)
#if defined(__DECC) || defined(__DECCXX)
#undef BOOST_CXX_DEC
#define BOOST_CXX_DEC BOOST_VERSION_NUMBER(\
(__DECC_VER)/10000000,\
(__DECC_VER%10000000)/100000,\
(__DECC_VER%10000))
#if defined(__DECCXX_VER)
#define BOOST_CXX_DEC BOOST_PREDEF_MAKE_NN_NN_0_NN_00(__DECCXX_VER)
#elif defined(__DECC_VER)
#define BOOST_CXX_DEC BOOST_PREDEF_MAKE_NN_NN_0_NN_00(__DECC_VER)
#else
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_DEC,"Compaq")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_DEC,"Compaq C/C++")
#endif

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_DIAB`]
[@http://en.wikipedia.org/wiki/XXX Diab] compiler.
[@http://www.windriver.com/products/development_suite/wind_river_compiler/ Diab C/C++] compiler.
Version number available as major, minor, and patch.
*/
@ -26,6 +26,6 @@ Version number available as major, minor, and patch.
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_DIAB,"Diab")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_DIAB,"Diab C/C++")
#endif

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_DMC`]
[@http://en.wikipedia.org/wiki/XXX Digital Mars] compiler.
[@http://en.wikipedia.org/wiki/Digital_Mars Digital Mars] compiler.
Version number available as major, minor, and patch.
*/

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_SYSC`]
[@http://en.wikipedia.org/wiki/XXX Dignus SysC] compiler.
[@http://www.dignus.com/dcxx/ Dignus Systems/C++] compiler.
Version number available as major, minor, and patch.
*/
@ -26,6 +26,6 @@ Version number available as major, minor, and patch.
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_SYSC,"SysC")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_SYSC,"Dignus Systems/C++")
#endif

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_EDG`]
[@http://en.wikipedia.org/wiki/XXX EDG] compiler.
[@http://en.wikipedia.org/wiki/Edison_Design_Group EDG C++ Frontend] compiler.
Version number available as major, minor, and patch.
*/
@ -22,10 +22,10 @@ Version number available as major, minor, and patch.
#if defined(__EDG__)
#undef BOOST_CXX_EDG
#define BOOST_CXX_EDG BOOST_PREDEF_MAKE_N_N_N(__EDG_VERSION__)
#define BOOST_CXX_EDG BOOST_PREDEF_MAKE_N_NN(__EDG_VERSION__)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_EDG,"EDG")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_EDG,"EDG C++ Frontend")
#endif

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_PATH`]
[@http://en.wikipedia.org/wiki/XXX Ekopath] compiler.
[@http://en.wikipedia.org/wiki/PathScale EKOpath] compiler.
Version number available as major, minor, and patch.
*/
@ -27,6 +27,6 @@ Version number available as major, minor, and patch.
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_PATH,"Ekopath")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_PATH,"EKOpath")
#endif

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_GNUC`]
[@http://en.wikipedia.org/wiki/XXX Gnu C/C++] compiler.
[@http://en.wikipedia.org/wiki/GNU_Compiler_Collection Gnu GCC C/C++] compiler.
Version number available as major, minor, and patch (if available).
*/
@ -32,6 +32,6 @@ Version number available as major, minor, and patch (if available).
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_GNUC,"Gnu C/C++")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_GNUC,"Gnu GCC C/C++")
#endif

View File

@ -14,18 +14,22 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_GHS`]
[@http://en.wikipedia.org/wiki/XXX Green Hills] compiler.
[@http://en.wikipedia.org/wiki/Green_Hills_Software Green Hills C/C++] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_GHS BOOST_VERSION_NUMBER(0,0,0)
#if defined(__ghs)
#if defined(__ghs) || defined(__ghs__)
#undef BOOST_CXX_GHS
#define BOOST_CXX_GHS BOOST_PREDEF_MAKE_N_N_N(__ghs)
#if defined(__GHS_VERSION_NUMBER__)
#define BOOST_CXX_GHS BOOST_PREDEF_MAKE_N_N_N(__GHS_VERSION_NUMBER__)
#else if defined(__ghs)
#define BOOST_CXX_GHS BOOST_PREDEF_MAKE_N_N_N(__ghs)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_GHS,"Green Hills")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_GHS,"Green Hills C/C++")
#endif

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_HPACC`]
[@http://en.wikipedia.org/wiki/XXX HP ACC] compiler.
HP aC++ compiler.
Version number available as major, minor, and patch.
*/
@ -22,10 +22,14 @@ Version number available as major, minor, and patch.
#if defined(__HP_aCC)
#undef BOOST_CXX_HPACC
#define BOOST_CXX_HPACC BOOST_PREDEF_MAKE_NN_NN_NN(__HP_aCC)
#if (__HP_aCC > 1)
#define BOOST_CXX_HPACC BOOST_PREDEF_MAKE_NN_NN_NN(__HP_aCC)
#else
#define BOOST_CXX_HPACC BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_HPACC,"HP ACC")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_HPACC,"HP aC++")
#endif

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_IAR`]
[@http://en.wikipedia.org/wiki/XXX IAR] compiler.
IAR C/C++ compiler.
Version number available as major, minor, and patch.
*/
@ -26,6 +26,6 @@ Version number available as major, minor, and patch.
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_IAR,"IAR")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_IAR,"IAR C/C++")
#endif

View File

@ -14,24 +14,26 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_IBM`]
[@http://en.wikipedia.org/wiki/XXX Iternational Business Mchines] compiler.
[@http://en.wikipedia.org/wiki/VisualAge IBM XL C/C++] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_IBM BOOST_VERSION_NUMBER(0,0,0)
#if defined(__IBMCPP__) || defined(__xlC__)
#if defined(__IBMCPP__) || defined(__xlC__) || defined(__xlc__)
#undef BOOST_CXX_IBM
#if defined(__COMPILER_VER__)
#define BOOST_CXX_IBM BOOST_PREDEF_MAKE_F_FF_FFFF(__COMPILER_VER__)
#elif defined(__xlC__)
#define BOOST_CXX_IBM BOOST_PREDEF_MAKE_FF_FF(__xlC__)
#elif defined(__xlc__)
#define BOOST_CXX_IBM BOOST_PREDEF_MAKE_FF_FF(__xlc__)
#else
#define BOOST_CXX_IBM BOOST_PREDEF_MAKE_N_N_N(__IBMCPP__)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_IBM,"IBM")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_IBM,"IBM XL C/C++")
#endif

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_INTEL`]
[@http://en.wikipedia.org/wiki/XXX Intel] compiler.
[@http://en.wikipedia.org/wiki/Intel_C%2B%2B Intel C/C++] compiler.
Version number available as major, minor, and patch.
*/
@ -23,10 +23,14 @@ Version number available as major, minor, and patch.
#if defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || \
defined(__ECC)
#undef BOOST_CXX_INTEL
#define BOOST_CXX_INTEL BOOST_PREDEF_MAKE_N_N_N(__INTEL_COMPILER)
#if defined(__INTEL_COMPILER)
#define BOOST_CXX_INTEL BOOST_PREDEF_MAKE_N_N_N(__INTEL_COMPILER)
#else
#define BOOST_CXX_INTEL BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_INTEL,"Intel")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_INTEL,"Intel C/C++")
#endif

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_KCC`]
[@http://en.wikipedia.org/wiki/XXX Kai] compiler.
Kai C++ compiler.
Version number available as major, minor, and patch.
*/
@ -26,6 +26,6 @@ Version number available as major, minor, and patch.
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_KCC,"Kai")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_KCC,"Kai C++")
#endif

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_LLVM`]
[@http://en.wikipedia.org/wiki/XXX LLVM] compiler.
[@http://en.wikipedia.org/wiki/LLVM LLVM] compiler.
*/
#define BOOST_CXX_LLVM BOOST_VERSION_NUMBER(0,0,0)

View File

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

View File

@ -14,26 +14,30 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_MWERKS`]
[@http://en.wikipedia.org/wiki/XXX Metrowerks] compiler.
[@http://en.wikipedia.org/wiki/CodeWarrior Metrowerks CodeWarrior] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(0,0,0)
#if defined(__MWERKS__)
#if defined(__MWERKS__) || defined(__CWCC__)
#undef BOOST_CXX_MWERKS
#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
#if defined(__CWCC__)
#define BOOST_CXX_MWERKS BOOST_PREDEF_MAKE_F_F_FF(__CWCC__)
#elif (__MWERKS__ >= 0x4200)
#define BOOST_CXX_MWERKS BOOST_PREDEF_MAKE_F_F_FF(__MWERKS__)
#elif (__MWERKS__ >= 0x3204) // note the "skip": 04->9.3
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(9,(__MWERKS__)%100-1,0)
#elif (__MWERKS__ >= 0x3200)
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(9,(__MWERKS__)%100,0)
#elif (__MWERKS__ >= 0x3000)
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(8,(__MWERKS__)%100,0)
#else
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_MWERKS,"Metrowerks")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_MWERKS,"Metrowerks CodeWarrior")
#endif

View File

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

View File

@ -14,17 +14,24 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_MINGW`]
[@http://en.wikipedia.org/wiki/XXX MinGW] compiler.
[@http://en.wikipedia.org/wiki/MinGW MinGW] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_MINGW BOOST_VERSION_NUMBER(0,0,0)
#if defined(__MINGW32__)
#if defined(__MINGW32__) || defined(__MINGW64__)
#include <_mingw.h>
#undef BOOST_CXX_MINGW
#define BOOST_CXX_MINGW \
BOOST_VERSION_NUMBER(__MINGW32_MAJOR_VERSION,__MINGW32_MINOR_VERSION,0)
#if defined(__MINGW64_VERSION_MAJOR) && defined(__MINGW64_VERSION_MINOR)
#define BOOST_CXX_MINGW \
BOOST_VERSION_NUMBER(__MINGW64_VERSION_MAJOR,__MINGW64_VERSION_MINOR,0)
#elif defined(__MINGW32_VERSION_MAJOR) && defined(__MINGW32_VERSION_MINOR)
#define BOOST_CXX_MINGW \
BOOST_VERSION_NUMBER(__MINGW32_MAJOR_VERSION,__MINGW32_MINOR_VERSION,0)
#else
#define BOOST_CXX_MINGW BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>

View File

@ -14,18 +14,22 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_MPW`]
[@http://en.wikipedia.org/wiki/XXX MPW] compiler.
[@http://en.wikipedia.org/wiki/Macintosh_Programmer%27s_Workshop MPW C++] compiler.
Version number available as major, and minor.
*/
#define BOOST_CXX_MPW BOOST_VERSION_NUMBER(0,0,0)
#if defined(__MRC__)
#if defined(__MRC__) || defined(MPW_C) || defined(MPW_CPLUS)
#undef BOOST_CXX_MPW
#define BOOST_CXX_MPW BOOST_PREDEF_MAKE_FF_FF(__MRC__)
#if defined(__MRC__)
#define BOOST_CXX_MPW BOOST_PREDEF_MAKE_FF_FF(__MRC__)
#else
#define BOOST_CXX_MPW BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_MPW,"MPW")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_MPW,"MPW C++")
#endif

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_PALM`]
[@http://en.wikipedia.org/wiki/XXX Palm] compiler.
Palm C/C++ compiler.
Version number available as major, minor, and patch.
*/
@ -26,6 +26,6 @@ Version number available as major, minor, and patch.
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_PALM,"Palm")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_PALM,"Palm C/C++")
#endif

View File

@ -14,17 +14,21 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_PGI`]
[@http://en.wikipedia.org/wiki/XXX PGI] compiler.
[@http://en.wikipedia.org/wiki/The_Portland_Group Portland Group C/C++] compiler.
*/
#define BOOST_CXX_PGI BOOST_VERSION_NUMBER(0,0,0)
#if defined(__PGI)
#undef BOOST_CXX_PGI
#define BOOST_CXX_PGI BOOST_VERSION_NUMBER(0,0,1)
#if defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__)
#define BOOST_CXX_PGI BOOST_VERSION_NUMBER(__PGIC__,__PGIC_MINOR__,__PGIC_PATCHLEVEL__)
#else
#define BOOST_CXX_PGI BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_PGI,"PGI")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_PGI,"Portland Group C/C++")
#endif

View File

@ -14,22 +14,24 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_SGI`]
[@http://en.wikipedia.org/wiki/XXX SGI Mips-pro] compiler.
[@http://en.wikipedia.org/wiki/MIPSpro SGI MIPSpro] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_SGI BOOST_VERSION_NUMBER(0,0,0)
#if defined(__sgi)
#if defined(__sgi) || defined(sgi)
#undef BOOST_CXX_SGI
#if defined(_SGI_COMPILER_VERSION)
#define BOOST_CXX_SGI BOOST_PREDEF_MAKE_N_N_N(_SGI_COMPILER_VERSION)
#else
#elif defined(_COMPILER_VERSION)
#define BOOST_CXX_SGI BOOST_PREDEF_MAKE_N_N_N(_COMPILER_VERSION)
#else
#define BOOST_CXX_SGI BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_SGI,"SGI Mips-pro")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_SGI,"SGI MIPSpro")
#endif

View File

@ -14,18 +14,24 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_SUNPRO`]
[@http://en.wikipedia.org/wiki/XXX Sun Pro] compiler.
[@http://en.wikipedia.org/wiki/Sun_Studio_%28software%29 Sun Studio] compiler.
Version number available as major, minor, and patch.
*/
#define BOOST_CXX_SUNPRO BOOST_VERSION_NUMBER(0,0,0)
#if defined(__SUNPRO_CC)
#if defined(__SUNPRO_CC) || defined(__SUNPRO_C)
#undef BOOST_CXX_SUNPRO
#define BOOST_CXX_SUNPRO BOOST_PREDEF_MAKE_F_F_F(__SUNPRO_CC)
#if defined(__SUNPRO_CC)
#define BOOST_CXX_SUNPRO BOOST_PREDEF_MAKE_F_F_F(__SUNPRO_CC)
#elif defined(__SUNPRO_C)
#define BOOST_CXX_SUNPRO BOOST_PREDEF_MAKE_F_F_F(__SUNPRO_C)
#else
#define BOOST_CXX_SUNPRO BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_SUNPRO,"Sun Pro")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_SUNPRO,"Sun Studio")
#endif

View File

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

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_MSVC`]
[@http://en.wikipedia.org/wiki/XXX Microsoft Visual C/C++] compiler.
[@http://en.wikipedia.org/wiki/Visual_studio Microsoft Visual C/C++] compiler.
Version number available as major, minor, and patch.
*/

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_CXX_WATCOM`]
[@http://en.wikipedia.org/wiki/XXX Watcom] compiler.
[@http://en.wikipedia.org/wiki/Watcom Watcom C++] compiler.
Version number available as major, and minor.
*/
@ -26,6 +26,6 @@ Version number available as major, and minor.
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_WATCOM,"Watcom")
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_WATCOM,"Watcom C++")
#endif

View File

@ -27,6 +27,6 @@ Version number available as major, minor, and patch.
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBC_UC,"uC")
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBC_UC,"uClibc")
#endif

View File

@ -22,10 +22,7 @@ Version number available as major, minor, and patch.
#if defined(__CRTL_VER)
#undef BOOST_LIBC_VMS
#define BOOST_LIBC_VMS BOOST_VERSION_NUMBER(
(__CRTL_VER)/10000000,\
(__CRTL_VER%10000000)/100000,\
(__CRTL_VER%10000)/100)
#define BOOST_LIBC_VMS BOOST_PREDEF_MAKE_NN_NN_0_NN_00(__CRTL_VER)
#endif
#include <boost/predef/detail/test.h>

View File

@ -22,7 +22,7 @@ If available version number as major, minor, and patch.
#if defined(_LIBCPP_VERSION)
#undef BOOST_LIBSTD_CXX
#define BOOST_LIBSTD_CXX BOOST_PREDEF_MAKE_NN_NN(__CPPLIB_VER)
#define BOOST_LIBSTD_CXX BOOST_PREDEF_MAKE_N__NNN(_LIBCPP_VERSION)
#endif
#include <boost/predef/detail/test.h>

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_LIBSTD_RW`]
[@http://en.wikipedia.org/wiki/XXX Roguewave Standard C++] library.
[@http://stdcxx.apache.org/ Roguewave] Standard C++ library.
If available version number as major, minor, and patch.
*/

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_LIBSTD_SGI`]
[@http://en.wikipedia.org/wiki/XXX SGI Standard C++] library.
[@http://www.sgi.com/tech/stl/ SGI] Standard C++ library.
If available version number as major, minor, and patch.
*/

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_LIBSTD_STLPORT`]
[@http://en.wikipedia.org/wiki/XXX STLport Standard C++] library.
[@http://sourceforge.net/projects/stlport/ STLport Standard C++] library.
Version number available as major, minor, and patch.
*/

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_LIBSTD_IBM`]
[@http://en.wikipedia.org/wiki/XXX IBM VACPP Standard C++] library.
[@http://www.ibm.com/software/awdtools/xlcpp/ IBM VACPP Standard C++] library.
*/
#define BOOST_LIBSTD_IBM BOOST_VERSION_NUMBER(0,0,0)

View File

@ -48,25 +48,33 @@ number. Where "`N`" indicates a decimal digit, "`_`"
separates the major/minor/patch parts of the version number,
and "`0`" indicates an ignored decimal digit. Macros are:
*/
/*` `BOOST_PREDEF_MAKE_N__NNN(V)` */
#define BOOST_PREDEF_MAKE_N__NNN(V) BOOST_VERSION_NUMBER(((V)/1000)%10,0,(V)%1000)
/*` `BOOST_PREDEF_MAKE_N_N_N(V)` */
#define BOOST_PREDEF_MAKE_N_N_N(V) BOOST_VERSION_NUMBER((V)/100,(V%100)/10,(V%10))
/*` `BOOST_PREDEF_MAKE_NN_NN_NN(V)` */
#define BOOST_PREDEF_MAKE_NN_NN_NN(V) BOOST_VERSION_NUMBER((V)/10000,(V%10000)/100,(V%100))
/*` `BOOST_PREDEF_MAKE_NN_NN(V)` */
#define BOOST_PREDEF_MAKE_NN_NN(V) BOOST_VERSION_NUMBER((V%10000)/100,(V%100),0)
/*` `BOOST_PREDEF_MAKE_N_N_NN(V)` */
#define BOOST_PREDEF_MAKE_N_N_NN(V) BOOST_VERSION_NUMBER((V)/1000,(V%1000)/100,(V%100))
/*` `BOOST_PREDEF_MAKE_N_NN_NN(V)` */
#define BOOST_PREDEF_MAKE_N_NN_NN(V) BOOST_VERSION_NUMBER((V)/10000,(V%10000)/100,(V%100))
#define BOOST_PREDEF_MAKE_N_N_N(V) BOOST_VERSION_NUMBER(((V)/100)%10,((V)/10)%10,(V)%10)
/*` `BOOST_PREDEF_MAKE_N_N_N_000(V)` */
#define BOOST_PREDEF_MAKE_N_N_N_000(V) BOOST_VERSION_NUMBER((V%1000000)/100000,(V%100000)/10000,(V%10000)/1000)
#define BOOST_PREDEF_MAKE_N_N_N_000(V) BOOST_VERSION_NUMBER(((V)/100000)%10,((V)/10000)%10,((V)/1000)%10)
/*` `BOOST_PREDEF_MAKE_N_N_NN(V)` */
#define BOOST_PREDEF_MAKE_N_N_NN(V) BOOST_VERSION_NUMBER(((V)/1000)%10,((V)/100)%10,(V)%100)
/*` `BOOST_PREDEF_MAKE_N_NN(V)` */
#define BOOST_PREDEF_MAKE_N_NN(V) BOOST_VERSION_NUMBER(((V)/100)%10,(V)%100,0)
/*` `BOOST_PREDEF_MAKE_N_NN_NN(V)` */
#define BOOST_PREDEF_MAKE_N_NN_NN(V) BOOST_VERSION_NUMBER(((V)/10000)%10,((V)/100)%100,(V)%100)
/*` `BOOST_PREDEF_MAKE_N_NN_000(V)` */
#define BOOST_PREDEF_MAKE_N_NN_000(V) BOOST_VERSION_NUMBER((V%1000000)/100000,(V%100000)/1000,0)
/*` `BOOST_PREDEF_MAKE_NN_NN_00_NN_00(V)` */
#define BOOST_PREDEF_MAKE_NN_NN_00_NN_00(V) BOOST_VERSION_NUMBER((V)/100000000,(V%100000000)/1000000,(V%10000)/100)
#define BOOST_PREDEF_MAKE_N_NN_000(V) BOOST_VERSION_NUMBER(((V)/100000)%10,((V)/1000)%100,0)
/*` `BOOST_PREDEF_MAKE_NN_00(V)` */
#define BOOST_PREDEF_MAKE_NN_00(V) BOOST_VERSION_NUMBER((V)/100,0,0)
#define BOOST_PREDEF_MAKE_NN_00(V) BOOST_VERSION_NUMBER(((V)/100)%100,0,0)
/*` `BOOST_PREDEF_MAKE_NN_NN(V)` */
#define BOOST_PREDEF_MAKE_NN_NN(V) BOOST_VERSION_NUMBER(((V)/100)%100,(V)%100,0)
/*` `BOOST_PREDEF_MAKE_NN_NN_NN(V)` */
#define BOOST_PREDEF_MAKE_NN_NN_NN(V) BOOST_VERSION_NUMBER(((V)/10000)%100,((V)/100)%100,(V)%100)
/*` `BOOST_PREDEF_MAKE_NN_NN_0_NN_00(V)` */
#define BOOST_PREDEF_MAKE_NN_NN_0_NN_00(V) BOOST_VERSION_NUMBER(((V)/10000000)%100,((V)/100000)%100,((V)/100)%100)
/*` `BOOST_PREDEF_MAKE_NN_NN_0_NNNN(V)` */
#define BOOST_PREDEF_MAKE_NN_NN_0_NNNN(V) BOOST_VERSION_NUMBER(((V)/10000000)%100,((V)/100000)%100,(V)%10000)
/*` `BOOST_PREDEF_MAKE_NN_NN_00_NN_00(V)` */
#define BOOST_PREDEF_MAKE_NN_NN_00_NN_00(V) BOOST_VERSION_NUMBER(((V)/100000000)%100,((V)/1000000)%100,((V)/100)%100)
/*` `BOOST_PREDEF_MAKE_YYYY_MM_DD(V)` */
#define BOOST_PREDEF_MAKE_YYYY_MM_DD(V) BOOST_VERSION_NUMBER((V)/10000-1970,(V%10000)/100,(V%100))
#define BOOST_PREDEF_MAKE_YYYY_MM_DD(V) BOOST_VERSION_NUMBER(((V)/10000)%10000-1970,((V)/100)%100,(V)%100)
#endif

View File

@ -17,9 +17,11 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/os/irix.h>
#include <boost/predef/os/linux.h>
#include <boost/predef/os/macos.h>
#include <boost/predef/os/os400.h>
#include <boost/predef/os/qnxnto.h>
#include <boost/predef/os/solaris.h>
#include <boost/predef/os/unix.h>
#include <boost/predef/os/vms.h>
#include <boost/predef/os/windows.h>
#endif

View File

@ -12,9 +12,9 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/make.h>
/*`
[heading `BOOST_OS_`]
[heading `BOOST_OS_AIX`]
[@http://en.wikipedia.org/wiki/XXX AIX] operating system.
[@http://en.wikipedia.org/wiki/AIX_operating_system IBM AIX] operating system.
Version number available as major, minor, and patch.
*/
@ -36,6 +36,6 @@ Version number available as major, minor, and patch.
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_AIX,"AIX")
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_AIX,"IBM AIX")
#endif

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_OS_AMIGAOS`]
[@http://en.wikipedia.org/wiki/XXX AmigaOS] operating system.
[@http://en.wikipedia.org/wiki/AmigaOS AmigaOS] operating system.
*/
#define BOOST_OS_AMIGAOS BOOST_VERSION_NUMBER(0,0,0)

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_OS_BEOS`]
[@http://en.wikipedia.org/wiki/XXX Be] operating system.
[@http://en.wikipedia.org/wiki/BeOS BeOS] operating system.
*/
#define BOOST_OS_BEOS BOOST_VERSION_NUMBER(0,0,0)
@ -25,6 +25,6 @@ http://www.boost.org/LICENSE_1_0.txt)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BEOS,"Be OS")
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BEOS,"BeOS")
#endif

View File

@ -14,17 +14,17 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_OS_BSD`]
[@http://en.wikipedia.org/wiki/XXX BSD] operating system.
[@http://en.wikipedia.org/wiki/Berkeley_Software_Distribution 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]
* `BOOST_OS_DRAGONFLY_BSD` [@http://en.wikipedia.org/wiki/DragonFly_BSD DragonFly BSD]
* `BOOST_OS_FREE_BSD` [@http://en.wikipedia.org/wiki/Freebsd FreeBSD]
* `BOOST_OS_BSDI_BSD` [@http://en.wikipedia.org/wiki/BSD/OS BSDi BSD/OS]
* `BOOST_OS_NET_BSD` [@http://en.wikipedia.org/wiki/Netbsd NetBSD]
* `BOOST_OS_OPEN_BSD` [@http://en.wikipedia.org/wiki/Openbsd OpenBSD]
[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.]
@ -47,6 +47,7 @@ of BSD. If the above variants is detected the corresponding macro is also set.]
#undef BOOST_OS_FREE_BSD
#undef BOOST_OS_NET_BSD
#undef BOOST_OS_OPEN_BSD
#include <sys/param.h>
#if defined(BSD4_2)
#define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,2,0)
#elif defined(BSD4_3)
@ -148,10 +149,10 @@ of BSD. If the above variants is detected the corresponding macro is also set.]
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSD,"BSD")
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_DRAGONFLY_BSD,"Dragonfly BSD")
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_DRAGONFLY_BSD,"DragonFly BSD")
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_FREE_BSD,"Free BSD")
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSDI_BSD,"BSDI BSD")
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_NET_BSD,"Net BSD")
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_OPEN_BSD,"Open BSD")
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BSDI_BSD,"BSDi BSD/OS")
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_NET_BSD,"NetBSD")
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_OPEN_BSD,"OpenBSD")
#endif

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_OS_CYGWIN`]
[@http://en.wikipedia.org/wiki/XXX Cygwin] operating system.
[@http://en.wikipedia.org/wiki/Cygwin Cygwin] evironment.
*/
#define BOOST_OS_CYGWIN BOOST_VERSION_NUMBER(0,0,0)

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_OS_HPUX`]
[@http://en.wikipedia.org/wiki/XXX HP-UX] operating system.
[@http://en.wikipedia.org/wiki/HP-UX HP-UX] operating system.
*/
#define BOOST_OS_HPUX BOOST_VERSION_NUMBER(0,0,0)

View File

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

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_OS_LINUX`]
[@http://en.wikipedia.org/wiki/XXX Linux] operating system.
[@http://en.wikipedia.org/wiki/Linux Linux] operating system.
*/
#define BOOST_OS_LINUX BOOST_VERSION_NUMBER(0,0,0)

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_OS_MACOS`]
[@http://en.wikipedia.org/wiki/XXX MacOS] operating system.
[@http://en.wikipedia.org/wiki/Mac_OS Mac OS] operating system.
Versions \[9-10\] are specifically detected.
*/
@ -31,6 +31,6 @@ Versions \[9-10\] are specifically detected.
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_MACOS,"MacOS")
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_MACOS,"Mac OS")
#endif

30
boost/predef/os/os400.h Normal file
View File

@ -0,0 +1,30 @@
/*
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_OS_OS400_H
#define BOOST_PREDEF_OS_OS400_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_OS_OS400`]
[@http://en.wikipedia.org/wiki/IBM_i IBM OS/400] operating system.
*/
#define BOOST_OS_OS400 BOOST_VERSION_NUMBER(0,0,0)
#if defined(__OS400__)
#undef BOOST_OS_OS400
#define BOOST_OS_OS400 BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_OS400,"IBM OS/400")
#endif

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_OS_QNX`]
[@http://en.wikipedia.org/wiki/XXX QNX-NTO] operating system.
[@http://en.wikipedia.org/wiki/QNX QNX] operating system.
Version number available as major, and minor if possible. And
version 4 is specifically detected.
*/
@ -33,6 +33,6 @@ version 4 is specifically detected.
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_QNX,"QNX-NTO")
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_QNX,"QNX")
#endif

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_OS_SOLARIS`]
[@http://en.wikipedia.org/wiki/XXX Solaris] operating system.
[@http://en.wikipedia.org/wiki/Solaris_Operating_Environment Solaris] operating system.
*/
#define BOOST_OS_SOLARIS BOOST_VERSION_NUMBER(0,0,0)

View File

@ -14,7 +14,7 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_OS_UNIX`]
[@http://en.wikipedia.org/wiki/XXX Unix] operating system.
[@http://en.wikipedia.org/wiki/Unix Unix Environment] operating system.
*/
#define BOOST_OS_UNIX BOOST_VERSION_NUMBER(0,0,0)
@ -25,7 +25,22 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_OS_UNIX BOOST_VERSION_NUMBER(0,0,1)
#endif
/*`
[heading `BOOST_OS_SVR4`]
[@http://en.wikipedia.org/wiki/UNIX_System_V SVR4 Environment] operating system.
*/
#define BOOST_OS_SVR4 BOOST_VERSION_NUMBER(0,0,0)
#if defined(__sysv__) || defined(__SVR4) || \
defined(__svr4__) || defined(_SYSTYPE_SVR4)
#undef BOOST_OS_SVR4
#define BOOST_OS_SVR4 BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_UNIX,"Unix")
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_UNIX,"Unix ENvironment")
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_SVR4,"SVR4 Environment")
#endif

35
boost/predef/os/vms.h Normal file
View File

@ -0,0 +1,35 @@
/*
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_OS_VMS_H
#define BOOST_PREDEF_OS_VMS_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_OS_VMS`]
[@http://en.wikipedia.org/wiki/Vms VMS] operating system.
Version number available as major, minor, and patch.
*/
#define BOOST_OS_VMS BOOST_VERSION_NUMBER(0,0,0)
#if defined(VMS) || defined(__VMS)
#undef BOOST_OS_VMS
#if defined(__VMS_VER)
#define BOOST_OS_VMS BOOST_PREDEF_MAKE_NN_NN_00_NN_00(__VMS_VER)
#else
#define BOOST_OS_VMS BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_VMS,"VMS")
#endif

View File

@ -14,18 +14,19 @@ http://www.boost.org/LICENSE_1_0.txt)
/*`
[heading `BOOST_OS_WINDOWS`]
[@http://en.wikipedia.org/wiki/XXX Microsoft Windows] operating system.
[@http://en.wikipedia.org/wiki/Category:Microsoft_Windows Microsoft Windows] operating system.
*/
#define BOOST_OS_WINDOWS BOOST_VERSION_NUMBER(0,0,0)
#if defined(_WIN32) || defined(_WIN64) || \
defined(__WIN32__) || defined(__TOS_WIN__)
defined(__WIN32__) || defined(__TOS_WIN__) || \
defined(__WINDOWS__)
#undef BOOST_OS_WINDOWS
#define BOOST_OS_WINDOWS BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_WINDOWS,"Windows")
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_WINDOWS,"Microsoft Windows")
#endif

View File

@ -8,8 +8,6 @@
<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">
@ -61,7 +59,7 @@
</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 23:35:32 GMT</small></p></td>
<td align="left"><p><small>Last revised: December 15, 2011 at 03:47:03 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>

View File

@ -10,8 +10,6 @@
<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>
@ -82,8 +80,6 @@
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.
@ -94,21 +90,15 @@ http://www.boost.org/LICENSE_1_0.txt)
<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
@ -117,8 +107,6 @@ http://www.boost.org/LICENSE_1_0.txt)
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`]
@ -127,8 +115,6 @@ Documentation about what is detected.
<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>)
@ -140,8 +126,6 @@ Documentation about what is detected.
<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>
@ -151,30 +135,20 @@ Documentation about what is detected.
<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
@ -183,23 +157,15 @@ Documentation about what is detected.
<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

View File

@ -10,8 +10,6 @@
<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>

View File

@ -9,8 +9,6 @@
<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>
@ -169,233 +167,240 @@
<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.
<a href="http://en.wikipedia.org/wiki/C_plus_plus_builder" target="_top">Borland C++</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>
<span><a name="predef.reference.boost_cxx_compiler_macros.boost_cxx_clang"></a></span><a class="link" href="reference.html#predef.reference.boost_cxx_compiler_macros.boost_cxx_clang"><code class="computeroutput"><span class="identifier">BOOST_CXX_CLANG</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Comeau</a> compiler. Version
<a href="http://en.wikipedia.org/wiki/Clang" target="_top">Clang</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>
<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">Compaq DEC</a> compiler.
Version number available as major, minor, and patch.
<a href="http://en.wikipedia.org/wiki/Comeau_C/C%2B%2B" target="_top">Comeau C++</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_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://www.openvms.compaq.com/openvms/brochures/deccplus/" target="_top">Compaq
C/C++</a> compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h4"></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>
<a name="predef.reference.boost_cxx_compiler_macros.h5"></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.
<a href="http://www.windriver.com/products/development_suite/wind_river_compiler/" target="_top">Diab
C/C++</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>
<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">Dignus SysC</a> compiler.
Version number available as major, minor, and patch.
<a href="http://en.wikipedia.org/wiki/Digital_Mars" target="_top">Digital Mars</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>
<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">EDG</a> compiler. Version
number available as major, minor, and patch.
<a href="http://www.dignus.com/dcxx/" target="_top">Dignus Systems/C++</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>
<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">Ekopath</a> compiler. Version
number available as major, minor, and patch.
<a href="http://en.wikipedia.org/wiki/Edison_Design_Group" target="_top">EDG C++ Frontend</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>
<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">Gnu C/C++</a> compiler.
Version number available as major, minor, and patch (if available).
<a href="http://en.wikipedia.org/wiki/PathScale" target="_top">EKOpath</a> compiler.
Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h10"></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/GNU_Compiler_Collection" target="_top">Gnu GCC
C/C++</a> compiler. Version number available as major, minor, and patch
(if available).
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h11"></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>
<a name="predef.reference.boost_cxx_compiler_macros.h12"></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.
<a href="http://en.wikipedia.org/wiki/Green_Hills_Software" target="_top">Green Hills
C/C++</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>
<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">IAR</a> compiler. Version
number available as major, minor, and patch.
HP aC++ 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>
<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">Iternational Business Mchines</a>
compiler. Version number available as major, minor, and patch.
IAR C/C++ 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>
<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">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>
<a href="http://en.wikipedia.org/wiki/VisualAge" target="_top">IBM XL C/C++</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_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/Intel_C%2B%2B" target="_top">Intel C/C++</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_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>
Kai C++ compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h18"></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/LLVM" target="_top">LLVM</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_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>
MetaWare High C/C++ compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h20"></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/CodeWarrior" target="_top">Metrowerks CodeWarrior</a>
compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h21"></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://www.mentor.com/microtec/" target="_top">Microtec C/C++</a> compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h22"></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/MinGW" target="_top">MinGW</a> compiler. Version
number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h23"></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/Macintosh_Programmer%27s_Workshop" target="_top">MPW
C++</a> compiler. Version number available as major, and minor.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h24"></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>
Palm C/C++ compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h25"></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/The_Portland_Group" target="_top">Portland Group
C/C++</a> compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h26"></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/MIPSpro" target="_top">SGI MIPSpro</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_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/Sun_Studio_%28software%29" target="_top">Sun Studio</a>
compiler. Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h28"></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/TenDRA_Compiler" target="_top">TenDRA C/C++</a>
compiler.
</p>
<h5>
<a name="predef.reference.boost_cxx_compiler_macros.h29"></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/Visual_studio" 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.h30"></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.
<a href="http://en.wikipedia.org/wiki/Watcom" target="_top">Watcom C++</a> compiler.
Version number available as major, and minor.
</p>
</div>
<div class="section">
@ -626,15 +631,15 @@
<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.
<a href="http://stdcxx.apache.org/" target="_top">Roguewave</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.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.
<a href="http://www.sgi.com/tech/stl/" target="_top">SGI</a> Standard C++ library.
If available version number as major, minor, and patch.
</p>
<h5>
@ -650,7 +655,7 @@
<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>
<a href="http://sourceforge.net/projects/stlport/" target="_top">STLport Standard C++</a>
library. Version number available as major, minor, and patch.
</p>
<h5>
@ -658,8 +663,8 @@
<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.
<a href="http://www.ibm.com/software/awdtools/xlcpp/" target="_top">IBM VACPP Standard
C++</a> library.
</p>
</div>
<div class="section">
@ -668,32 +673,34 @@
</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>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_aix"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_aix"><code class="computeroutput"><span class="identifier">BOOST_OS_AIX</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.
<a href="http://en.wikipedia.org/wiki/AIX_operating_system" target="_top">IBM 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.
<a href="http://en.wikipedia.org/wiki/AmigaOS" 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.
<a href="http://en.wikipedia.org/wiki/BeOS" target="_top">BeOS</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.
<a href="http://en.wikipedia.org/wiki/Berkeley_Software_Distribution" target="_top">BSD</a>
operating system.
</p>
<p>
BSD has various branch operating systems possible and each detected individually.
@ -703,19 +710,19 @@
<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>
<a href="http://en.wikipedia.org/wiki/DragonFly_BSD" 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>
<code class="computeroutput"><span class="identifier">BOOST_OS_FREE_BSD</span></code> <a href="http://en.wikipedia.org/wiki/Freebsd" target="_top">FreeBSD</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>
<code class="computeroutput"><span class="identifier">BOOST_OS_BSDI_BSD</span></code> <a href="http://en.wikipedia.org/wiki/BSD/OS" target="_top">BSDi BSD/OS</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>
<code class="computeroutput"><span class="identifier">BOOST_OS_NET_BSD</span></code> <a href="http://en.wikipedia.org/wiki/Netbsd" target="_top">NetBSD</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>
<code class="computeroutput"><span class="identifier">BOOST_OS_OPEN_BSD</span></code> <a href="http://en.wikipedia.org/wiki/Openbsd" target="_top">OpenBSD</a>
</li>
</ul></div>
<div class="note"><table border="0" summary="Note">
@ -734,67 +741,93 @@
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_cygwin"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_cygwin"><code class="computeroutput"><span class="identifier">BOOST_OS_CYGWIN</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Cygwin</a> operating system.
<a href="http://en.wikipedia.org/wiki/Cygwin" target="_top">Cygwin</a> evironment.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h5"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_hpux"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_hpux"><code class="computeroutput"><span class="identifier">BOOST_OS_HPUX</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">HP-UX</a> operating system.
<a href="http://en.wikipedia.org/wiki/HP-UX" target="_top">HP-UX</a> operating system.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h6"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_irix"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_irix"><code class="computeroutput"><span class="identifier">BOOST_OS_IRIX</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Irix</a> operating system.
<a href="http://en.wikipedia.org/wiki/Irix" target="_top">IRIX</a> operating system.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h7"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_linux"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_linux"><code class="computeroutput"><span class="identifier">BOOST_OS_LINUX</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Linux</a> operating system.
<a href="http://en.wikipedia.org/wiki/Linux" target="_top">Linux</a> operating system.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h8"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_macos"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_macos"><code class="computeroutput"><span class="identifier">BOOST_OS_MACOS</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">MacOS</a> operating system.
Versions [9-10] are specifically detected.
<a href="http://en.wikipedia.org/wiki/Mac_OS" target="_top">Mac OS</a> operating
system. Versions [9-10] are specifically detected.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h9"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_os400"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_os400"><code class="computeroutput"><span class="identifier">BOOST_OS_OS400</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/IBM_i" target="_top">IBM OS/400</a> operating
system.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h10"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_qnx"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_qnx"><code class="computeroutput"><span class="identifier">BOOST_OS_QNX</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">QNX-NTO</a> operating system.
<a href="http://en.wikipedia.org/wiki/QNX" target="_top">QNX</a> operating system.
Version number available as major, and minor if possible. And version 4 is
specifically detected.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h10"></a>
<a name="predef.reference.boost_os_operating_system_macros.h11"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_solaris"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_solaris"><code class="computeroutput"><span class="identifier">BOOST_OS_SOLARIS</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Solaris</a> operating system.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h11"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_unix"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_unix"><code class="computeroutput"><span class="identifier">BOOST_OS_UNIX</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Unix</a> operating system.
<a href="http://en.wikipedia.org/wiki/Solaris_Operating_Environment" target="_top">Solaris</a>
operating system.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h12"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_unix"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_unix"><code class="computeroutput"><span class="identifier">BOOST_OS_UNIX</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/Unix" target="_top">Unix Environment</a> operating
system.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h13"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_svr4"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_svr4"><code class="computeroutput"><span class="identifier">BOOST_OS_SVR4</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/UNIX_System_V" target="_top">SVR4 Environment</a>
operating system.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h14"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_vms"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_vms"><code class="computeroutput"><span class="identifier">BOOST_OS_VMS</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/Vms" target="_top">VMS</a> operating system.
Version number available as major, minor, and patch.
</p>
<h5>
<a name="predef.reference.boost_os_operating_system_macros.h15"></a>
<span><a name="predef.reference.boost_os_operating_system_macros.boost_os_windows"></a></span><a class="link" href="reference.html#predef.reference.boost_os_operating_system_macros.boost_os_windows"><code class="computeroutput"><span class="identifier">BOOST_OS_WINDOWS</span></code></a>
</h5>
<p>
<a href="http://en.wikipedia.org/wiki/XXX" target="_top">Microsoft Windows</a> operating
system.
<a href="http://en.wikipedia.org/wiki/Category:Microsoft_Windows" target="_top">Microsoft
Windows</a> operating system.
</p>
</div>
<div class="section">
@ -806,12 +839,8 @@
<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>
@ -893,32 +922,44 @@
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__NNN</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</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_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</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_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>
<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_NN_00</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>
<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_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_0_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_NN_0_NNNN</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_YYYY_MM_DD</span><span class="special">(</span><span class="identifier">V</span><span class="special">)</span></code>

View File

@ -10,8 +10,6 @@
<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>
@ -23,12 +21,8 @@
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>
@ -75,8 +69,6 @@
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>
@ -89,8 +81,6 @@
<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.
@ -98,8 +88,6 @@
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>
@ -112,14 +100,10 @@
<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>
@ -139,8 +123,6 @@
<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
@ -150,12 +132,8 @@
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>
@ -185,21 +163,13 @@
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>

View File

@ -1,5 +1,5 @@
[article Predef
[quickbook 1.6]
[quickbook 1.7]
[version 1.0]
[authors [Rivera, Rene]]
[copyright 2005 Rene Rivera, 2008-2011 Redshift Software Inc]

View File

@ -38,6 +38,7 @@ void test_BOOST_VERSION_NUMBER()
PREDEF_CHECK(BOOST_PREDEF_MAKE_F_FF_FF_000(0xFFFFF000) == BOOST_VERSION_NUMBER(0xF,0xFF,0xFF));
PREDEF_CHECK(BOOST_PREDEF_MAKE_N_N_N(999) == BOOST_VERSION_NUMBER(9,9,9));
PREDEF_CHECK(BOOST_PREDEF_MAKE_N__NNN(9999) == BOOST_VERSION_NUMBER(9,0,999));
PREDEF_CHECK(BOOST_PREDEF_MAKE_NN_NN_NN(999999) == BOOST_VERSION_NUMBER(99,99,99));
PREDEF_CHECK(BOOST_PREDEF_MAKE_NN_NN(9999) == BOOST_VERSION_NUMBER(99,99,0));
PREDEF_CHECK(BOOST_PREDEF_MAKE_N_N_NN(9999) == BOOST_VERSION_NUMBER(9,9,99));
@ -45,7 +46,10 @@ void test_BOOST_VERSION_NUMBER()
PREDEF_CHECK(BOOST_PREDEF_MAKE_N_N_N_000(999000) == BOOST_VERSION_NUMBER(9,9,9));
PREDEF_CHECK(BOOST_PREDEF_MAKE_N_NN_000(999000) == BOOST_VERSION_NUMBER(9,99,0));
PREDEF_CHECK(BOOST_PREDEF_MAKE_NN_NN_00_NN_00(9999009900) == BOOST_VERSION_NUMBER(99,99,99));
PREDEF_CHECK(BOOST_PREDEF_MAKE_NN_NN_0_NN_00(999909900) == BOOST_VERSION_NUMBER(99,99,99));
PREDEF_CHECK(BOOST_PREDEF_MAKE_NN_00(9900) == BOOST_VERSION_NUMBER(99,00,00));
PREDEF_CHECK(BOOST_PREDEF_MAKE_NN_NN_0_NNNN(999909999) == BOOST_VERSION_NUMBER(99,99,9999));
PREDEF_CHECK(BOOST_PREDEF_MAKE_N_NN(999) == BOOST_VERSION_NUMBER(9,99,00));
PREDEF_CHECK(BOOST_PREDEF_MAKE_YYYY_MM_DD(19700101) == BOOST_VERSION_NUMBER(0,1,1));
PREDEF_CHECK(BOOST_PREDEF_MAKE_YYYY_MM_DD(19710101) == BOOST_VERSION_NUMBER(1,1,1));