Major cleanup and update, although still in progress. Now contains tests for all predefs and utility macros. And added language predefs.

git-svn-id: http://svn.boost.org/svn/boost/sandbox/predef@75548 b8fc166d-592f-0410-95f2-cb63ce0dd405
This commit is contained in:
Rene Rivera
2011-11-19 03:46:41 +00:00
parent f5df16420f
commit 5513bc2b02
98 changed files with 1538 additions and 228 deletions

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -8,8 +8,10 @@ http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_PREDEF_H
#define BOOST_PREDEF_H
#include <boost/predef/language.h>
#include <boost/predef/architecture.h>
#include <boost/predef/compiler.h>
#include <boost/predef/library.h>
#include <boost/predef/platform.h>
#include <boost/predef/os.h>
#endif

View File

@ -8,6 +8,23 @@ http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_PREDEF_ARCHITECTURE_H
#define BOOST_PREDEF_ARCHITECTURE_H
#include <boost/predef/architecture/.h>
#include <boost/predef/architecture/alpha.h>
#include <boost/predef/architecture/amd64.h>
#include <boost/predef/architecture/arm.h>
#include <boost/predef/architecture/convex.h>
#include <boost/predef/architecture/ia64.h>
#include <boost/predef/architecture/m68k.h>
#include <boost/predef/architecture/mips.h>
#include <boost/predef/architecture/parisc.h>
#include <boost/predef/architecture/ppc.h>
#include <boost/predef/architecture/pyramid.h>
#include <boost/predef/architecture/rs6k.h>
#include <boost/predef/architecture/sparc.h>
#include <boost/predef/architecture/superh.h>
#include <boost/predef/architecture/sys370.h>
#include <boost/predef/architecture/sys390.h>
#include <boost/predef/architecture/x86.h>
#include <boost/predef/architecture/z.h>
//#include <boost/predef/architecture/.h>
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -9,7 +9,14 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_ARCHITECTURE_ALPHA_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCHITECTURE_ALPHA`]
[@http://en.wikipedia.org/wiki/DEC_Alpha DEC Alpha] architecture:
If available versions [4-6] are specifically detected.
*/
#define BOOST_ARCHITECTURE_ALPHA BOOST_VERSION_NUMBER(0,0,0)
@ -27,4 +34,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_ALPHA,"DEC Alpha")
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -9,7 +9,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_ARCHITECTURE_AMD64_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCHITECTURE_AMD64`]
[@http://en.wikipedia.org/wiki/Amd64 American Micro Devices AMD 64] architecture.
*/
#define BOOST_ARCHITECTURE_AMD64 BOOST_VERSION_NUMBER(0,0,0)
@ -20,4 +26,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_ARCHITECTURE_AMD64 BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_AMD64,"American Micro Devices AMD 64")
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -9,7 +9,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_ARCHITECTURE_ARM_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCHITECTURE_ARM`]
[@http://en.wikipedia.org/wiki/ARM_architecture ARM] architecture.
*/
#define BOOST_ARCHITECTURE_ARM BOOST_VERSION_NUMBER(0,0,0)
@ -25,4 +31,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_ARM,"ARM")
#endif

View File

@ -0,0 +1,43 @@
/*
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_ARCHITECTURE_CONVEX_H
#define BOOST_PREDEF_ARCHITECTURE_CONVEX_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCHITECTURE_CONVEX`]
[@http://en.wikipedia.org/wiki/Convex_Computer Convex Computer] architecture.
*/
#define BOOST_ARCHITECTURE_CONVEX BOOST_VERSION_NUMBER(0,0,0)
#if defined(__convex__)
#undef BOOST_ARCHITECTURE_CONVEX
#if defined(__convex_c1__)
#define BOOST_ARCHITECTURE_CONVEX BOOST_VERSION_NUMBER(1,0,0)
#elif defined(__convex_c2__)
#define BOOST_ARCHITECTURE_CONVEX BOOST_VERSION_NUMBER(2,0,0)
#elif defined(__convex_c32__)
#define BOOST_ARCHITECTURE_CONVEX BOOST_VERSION_NUMBER(3,2,0)
#elif defined(__convex_c34__)
#define BOOST_ARCHITECTURE_CONVEX BOOST_VERSION_NUMBER(3,4,0)
#elif defined(__convex_c38__)
#define BOOST_ARCHITECTURE_CONVEX BOOST_VERSION_NUMBER(3,8,0)
#else
#define BOOST_ARCHITECTURE_CONVEX BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_CONVEX,"Convex Computer")
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -9,15 +9,25 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_ARCHITECTURE_IA64_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCHITECTURE_IA64`]
[@http://en.wikipedia.org/wiki/Ia64 Intel IA-64] architecture.
*/
#define BOOST_ARCHITECTURE_IA64 BOOST_VERSION_NUMBER(0,0,0)
#if defined(__ia64__) || defined(_IA64) || \
defined(__IA64__) || defined(__ia64) || \
defined(_M_IA64)
defined(_M_IA64) || defined(__itanium__) || \
defined(__x86_64) || defined(__x86_64__)
#undef BOOST_ARCHITECTURE_IA64
#define BOOST_ARCHITECTURE_IA64 BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_IA64,"Intel IA-64")
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -9,27 +9,36 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_ARCHITECTURE_M68K_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCHITECTURE_M68K`]
[@http://en.wikipedia.org/wiki/M68k Motorola 68k] architecture.
*/
#define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(0,0,0)
#if defined(__m68k__) || defined(M68000)
#undef BOOST_ARCHITECTURE_M68K
#if defined(__mc68000__)
#define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(0,0,1)
#elif defined(__mc68010__)
#define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(1,0,0)
#elif defined(__mc68020__)
#define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(2,0,0)
#elif defined(__mc68030__)
#define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(3,0,0)
#elif defined(__mc68040__)
#define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(4,0,0)
#elif defined(__mc68060__)
#if defined(__mc68060__) || defined(mc68060) || defined(__mc68060)
#define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(6,0,0)
#elif defined(__mc68040__) || defined(mc68040) || defined(__mc68040)
#define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(4,0,0)
#elif defined(__mc68030__) || defined(mc68030) || defined(__mc68030)
#define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(3,0,0)
#elif defined(__mc68020__) || defined(mc68020) || defined(__mc68020)
#define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(2,0,0)
#elif defined(__mc68010__) || defined(mc68010) || defined(__mc68010)
#define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(1,0,0)
#elif defined(__mc68000__) || defined(mc68000) || defined(__mc68000)
#define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(0,0,1)
#else
#define BOOST_ARCHITECTURE_M68K BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_M68K,"Motorola 68k")
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -9,7 +9,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_ARCHITECTURE_MIPS_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCHITECTURE_MIPS`]
[@http://en.wikipedia.org/wiki/MIPS_architecture MIPS] architecture.
*/
#define BOOST_ARCHITECTURE_MIPS BOOST_VERSION_NUMBER(0,0,0)
@ -31,4 +37,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_MIPS,"MIPS")
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -9,21 +9,30 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_ARCHITECTURE_PARISC_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCHITECTURE_PARISK`]
[@http://en.wikipedia.org/wiki/PA-RISC_family HP/PA RISC] architecture.
*/
#define BOOST_ARCHITECTURE_PARISC BOOST_VERSION_NUMBER(0,0,0)
#if defined(__hppa__) || defined(__hppa)
#if defined(__hppa__) || defined(__hppa) || defined(__HPPA__)
#undef BOOST_ARCHITECTURE_PARISC
#if defined(_PA_RISC1_0)
#define BOOST_ARCHITECTURE_PARISC BOOST_VERSION_NUMBER(1,0,0)
#elif defined(_PA_RISC1_1)
#elif defined(_PA_RISC1_1) || defined(__HPPA11__) || defined(__PA7100__)
#define BOOST_ARCHITECTURE_PARISC BOOST_VERSION_NUMBER(1,1,0)
#elif defined(_PA_RISC2_0)
#elif defined(_PA_RISC2_0) || defined(__RISC2_0__) || defined(__HPPA20__) || defined(__PA8000__)
#define BOOST_ARCHITECTURE_PARISC BOOST_VERSION_NUMBER(2,0,0)
#else
#define BOOST_ARCHITECTURE_PARISC BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_PARISC,"HP/PA RISC")
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -9,13 +9,21 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_ARCHITECTURE_PPC_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCHITECTURE_PPC`]
[@http://en.wikipedia.org/wiki/PowerPC PowerPC] architecture.
*/
#define BOOST_ARCHITECTURE_PPC BOOST_VERSION_NUMBER(0,0,0)
#if defined(__powerpc) || defined(__powerpc__) || \
defined(__POWERPC__) || defined(__ppc__) || \
defined(_M_PPC) || defined(_ARCH_PPC)
defined(_M_PPC) || defined(_ARCH_PPC) || \
defined(__PPCGECKO__) || defined(__PPCBROADWAY__) || \
defined(_XENON)
#undef BOOST_ARCHITECTURE_PPC
#if defined(__ppc601__) || defined(_ARCH_601)
#define BOOST_ARCHITECTURE_PPC BOOST_VERSION_NUMBER(6,1,0)
@ -28,4 +36,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_PPC,"PowerPC")
#endif

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_ARCHITECTURE_PYRAMID_H
#define BOOST_PREDEF_ARCHITECTURE_PYRAMID_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCHITECTURE_PYRAMID`]
Pyramid 9810 architecture.
*/
#define BOOST_ARCHITECTURE_PYRAMID BOOST_VERSION_NUMBER(0,0,0)
#if defined(pyr)
#undef BOOST_ARCHITECTURE_PYRAMID
#define BOOST_ARCHITECTURE_PYRAMID BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_PYRAMID,"Pyramid 9810")
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -9,7 +9,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_ARCHITECTURE_RS6K_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCHITECTURE_RS6000`]
[@http://en.wikipedia.org/wiki/RS/6000 RS/6000] architecture.
*/
#define BOOST_ARCHITECTURE_RS6000 BOOST_VERSION_NUMBER(0,0,0)
@ -22,4 +28,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_ARCHITECTURE_PWR BOOST_ARCHITECTURE_RS6000
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_RS6000,"RS/6000")
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -9,19 +9,28 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_ARCHITECTURE_SPARC_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCHITECTURE_SPARC`]
[@http://en.wikipedia.org/wiki/SPARC SPARC] architecture.
*/
#define BOOST_ARCHITECTURE_SPARC BOOST_VERSION_NUMBER(0,0,0)
#if defined(__sparc__) || defined(__sparc)
#undef BOOST_ARCHITECTURE_SPARC
#if defined(__sparcv8)
#define BOOST_ARCHITECTURE_SPARC BOOST_VERSION_NUMBER(8,0,0)
#elif defined(__sparcv9)
#if defined(__sparcv9)
#define BOOST_ARCHITECTURE_SPARC BOOST_VERSION_NUMBER(9,0,0)
#elif defined(__sparcv8)
#define BOOST_ARCHITECTURE_SPARC BOOST_VERSION_NUMBER(8,0,0)
#else
#define BOOST_ARCHITECTURE_SPARC BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_SPARC,"SPARC")
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -9,25 +9,35 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_ARCHITECTURE_SUPERH_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCHITECTURE_SH`]
[@http://en.wikipedia.org/wiki/SuperH SuperH] architecture:
If available versions [1-5] are specifically detected.
*/
#define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(0,0,0)
#if defined(__sh__)
#undef BOOST_ARCHITECTURE_SH
#if defined(__sh1__)
#define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(1,0,0)
#elif defined(__sh2__)
#define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(2,0,0)
#elif defined(__sh3__) || defined(__SH3__)
#define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(3,0,0)
#if defined(__SH5__)
#define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(5,0,0)
#elif defined(__SH4__)
#define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(4,0,0)
#elif defined(__SH5__)
#define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(5,0,0)
#elif defined(__sh3__) || defined(__SH3__)
#define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(3,0,0)
#elif defined(__sh2__)
#define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(2,0,0)
#elif defined(__sh1__)
#define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(1,0,0)
#else
#define BOOST_ARCHITECTURE_SH BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_SH,"SuperH")
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -9,7 +9,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_ARCHITECTURE_SYS370_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCHITECTURE_SYS370`]
[@http://en.wikipedia.org/wiki/System/370 System/370] architecture.
*/
#define BOOST_ARCHITECTURE_SYS370 BOOST_VERSION_NUMBER(0,0,0)
@ -18,4 +24,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_ARCHITECTURE_SYS370 BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_SYS370,"System/370")
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -9,7 +9,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_ARCHITECTURE_SYS390_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCHITECTURE_SYS390`]
[@http://en.wikipedia.org/wiki/System/390 System/390] architecture.
*/
#define BOOST_ARCHITECTURE_SYS390 BOOST_VERSION_NUMBER(0,0,0)
@ -18,4 +24,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_ARCHITECTURE_SYS390 BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_SYS390,"System/390")
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -9,24 +9,42 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_ARCHITECTURE_X86_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_ARCHITECTURE_X86 BOOST_VERSION_NUMBER(0,0,0)
/*`
[heading `BOOST_ARCHITECTURE_X86`]
[@http://en.wikipedia.org/wiki/X86 Intel x86] architecture:
If available versions [3-6] are specifically detected.
*/
#if defined(i386) || defined(__i386__) || \
defeind(__i486__) || defined(__i586__) || \
defeind(__i686__) || defined(__i386) || \
defeind(_M_IX86) || defined(_X86_) || \
defeind(__THW_INTEL__) || defined(__I86__) || \
defeind(__INTEL__)
defined(__i486__) || defined(__i586__) || \
defined(__i686__) || defined(__i386) || \
defined(_M_IX86) || defined(_X86_) || \
defined(__THW_INTEL__) || defined(__I86__) || \
defined(__INTEL__)
#undef BOOST_ARCHITECTURE_X86
#if defined(__I86__)
#define BOOST_ARCHITECTURE_X86 BOOST_VERSION_NUMBER(__I86__,0,0)
#elif defined(_M_IX86)
#define BOOST_ARCHITECTURE_X86 BOOST_PREDEF_VRP_N_N_N(_M_IX86)
#define BOOST_ARCHITECTURE_X86 BOOST_PREDEF_MAKE_NN_00(_M_IX86)
#elif defined(__i686__)
#define BOOST_ARCHITECTURE_X86 BOOST_VERSION_NUMBER(6,0,0)
#elif defined(__i586__)
#define BOOST_ARCHITECTURE_X86 BOOST_VERSION_NUMBER(5,0,0)
#elif defined(__i486__)
#define BOOST_ARCHITECTURE_X86 BOOST_VERSION_NUMBER(4,0,0)
#elif defined(__i386__)
#define BOOST_ARCHITECTURE_X86 BOOST_VERSION_NUMBER(3,0,0)
#else
#define BOOST_ARCHITECTURE_X86 BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_X86,"Intel x86")
#endif

View File

@ -1,5 +1,5 @@
/*
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -9,7 +9,12 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_ARCHITECTURE_Z_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_ARCHITECTURE_Z`]
[@http://en.wikipedia.org/wiki/Z/Architecture z/Architecture] architecture. */
#define BOOST_ARCHITECTURE_Z BOOST_VERSION_NUMBER(0,0,0)
@ -18,4 +23,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_ARCHITECTURE_Z BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_ARCHITECTURE_Z,"z/Architecture")
#endif

View File

@ -17,8 +17,8 @@ http://www.boost.org/LICENSE_1_0.txt)
#include <boost/predef/compiler/dignus.h>
#include <boost/predef/compiler/edg.h>
#include <boost/predef/compiler/ekopath.h>
#include <boost/predef/compiler/gcc.h>
#include <boost/predef/compiler/gcc_xml.h>
#include <boost/predef/compiler/gcc.h>
#include <boost/predef/compiler/greenhills.h>
#include <boost/predef/compiler/hp_acc.h>
#include <boost/predef/compiler/iar.h>

View File

@ -9,13 +9,16 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_BORLAND_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_BORLAND BOOST_VERSION_NUMBER(0,0,0)
#if defined(__BORLANDC__)
#undef BOOST_CXX_BORLAND
#define BOOST_CXX_BORLAND BOOST_PREDEF_VRP_FF_F_F(__BORLANDC__)
#define BOOST_CXX_BORLAND BOOST_PREDEF_MAKE_FF_F_F(__BORLANDC__)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_BORLAND,"Borland")
#endif

View File

@ -9,13 +9,16 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_COMEAU_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_COMO BOOST_VERSION_NUMBER(0,0,0)
#if defined(__COMO__)
#undef BOOST_CXX_COMO
#define BOOST_CXX_COMO BOOST_PREDEF_VRP_F_F_FF(__COMO_VERSION__)
#define BOOST_CXX_COMO BOOST_PREDEF_MAKE_F_F_FF(__COMO_VERSION__)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_COMO,"Comeau")
#endif

View File

@ -9,7 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_COMPAQ_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_DEC BOOST_VERSION_NUMBER(0,0,0)
@ -21,4 +21,7 @@ http://www.boost.org/LICENSE_1_0.txt)
(__DECC_VER%10000))
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_DEC,"Compaq")
#endif

View File

@ -9,7 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_CYGWIN_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_CYGWIN BOOST_VERSION_NUMBER(0,0,0)
@ -18,4 +18,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_CXX_CYGWIN BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_CYGWIN,"Cygwin")
#endif

View File

@ -6,16 +6,19 @@ http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef BOOST_PREDEF_COMPILER_DIAB_H
#define BOOST_PREDEF_COMPILER_BORLAND_H
#define BOOST_PREDEF_COMPILER_DIAB_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_DIAB BOOST_VERSION_NUMBER(0,0,0)
#if defined(__DCC__)
#undef BOOST_CXX_DIAB
#define BOOST_CXX_DIAB BOOST_PREDEF_VRP_N_N_NN(__VERSION_NUMBER__)
#define BOOST_CXX_DIAB BOOST_PREDEF_MAKE_N_N_NN(__VERSION_NUMBER__)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_DIAB,"Diab")
#endif

View File

@ -9,13 +9,16 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_DIGITALMARS_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_DMC BOOST_VERSION_NUMBER(0,0,0)
#if defined(__DMC__)
#undef BOOST_CXX_DMC
#define BOOST_CXX_DMC BOOST_PREDEF_VRP_F_F_F(__DMC__)
#define BOOST_CXX_DMC BOOST_PREDEF_MAKE_F_F_F(__DMC__)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_DMC,"Digital Mars")
#endif

View File

@ -9,13 +9,16 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_DIGNUS_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_SYSC BOOST_VERSION_NUMBER(0,0,0)
#if defined(__SYSC__)
#undef BOOST_CXX_SYSC
#define BOOST_CXX_SYSC BOOST_PREDEF_VRP_N_NN_NN(__SYSC_VER__)
#define BOOST_CXX_SYSC BOOST_PREDEF_MAKE_N_NN_NN(__SYSC_VER__)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_SYSC,"SysC")
#endif

View File

@ -9,13 +9,16 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_EDG_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_EDG BOOST_VERSION_NUMBER(0,0,0)
#if defined(__EDG__)
#undef BOOST_CXX_EDG
#define BOOST_CXX_EDG BOOST_PREDEF_VRP_N_N_N(__EDG_VERSION__)
#define BOOST_CXX_EDG BOOST_PREDEF_MAKE_N_N_N(__EDG_VERSION__)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_EDG,"EDG")
#endif

View File

@ -9,7 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_EKOPATH_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_PATH BOOST_VERSION_NUMBER(0,0,0)
@ -19,4 +19,7 @@ http://www.boost.org/LICENSE_1_0.txt)
BOOST_VERSION_NUMBER(__PATHCC__,__PATHCC_MINOR__,__PATHCC_PATCHLEVEL__)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_PATH,"Ekopath")
#endif

View File

@ -9,7 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_GCC_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_GNUC BOOST_VERSION_NUMBER(0,0,0)
@ -24,4 +24,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_GNUC,"GNUC")
#endif

View File

@ -9,7 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_GCC_XML_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_GCCXML BOOST_VERSION_NUMBER(0,0,0)
@ -18,4 +18,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_CXX_GCCXML BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_GCCXML,"GCC XML")
#endif

View File

@ -9,13 +9,16 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_GREENHILLS_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_GHS BOOST_VERSION_NUMBER(0,0,0)
#if defined(__ghs)
#undef BOOST_CXX_GHS
#define BOOST_CXX_GHS BOOST_PREDEF_VRP_N_N_N(__ghs)
#define BOOST_CXX_GHS BOOST_PREDEF_MAKE_N_N_N(__ghs)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_GHS,"Green Hills")
#endif

View File

@ -9,13 +9,16 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_HP_ACC_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_HPACC BOOST_VERSION_NUMBER(0,0,0)
#if defined(__HP_aCC)
#undef BOOST_CXX_HPACC
#define BOOST_CXX_HPACC BOOST_PREDEF_VRP_NN_NN_NN(__HP_aCC)
#define BOOST_CXX_HPACC BOOST_PREDEF_MAKE_NN_NN_NN(__HP_aCC)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_HPACC,"HP ACC")
#endif

View File

@ -9,13 +9,16 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_IAR_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_IAR BOOST_VERSION_NUMBER(0,0,0)
#if defined(__IAR_SYSTEMS_ICC__)
#undef BOOST_CXX_IAR
#define BOOST_CXX_IAR BOOST_PREDEF_VRP_NN_NN(__VER__)
#define BOOST_CXX_IAR BOOST_PREDEF_MAKE_NN_NN(__VER__)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_IAR,"IAR")
#endif

View File

@ -9,19 +9,22 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_IBM_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_IBM BOOST_VERSION_NUMBER(0,0,0)
#if defined(__IBMCPP__) || defined(__xlC__)
#undef BOOST_CXX_IBM
#if defined(__COMPILER_VER__)
#define BOOST_CXX_IBM BOOST_PREDEF_VRP_F_FF_FFFF(__COMPILER_VER__)
#define BOOST_CXX_IBM BOOST_PREDEF_MAKE_F_FF_FFFF(__COMPILER_VER__)
#elif defined(__xlC__)
#define BOOST_CXX_IBM BOOST_PREDEF_VRP_FF_FF(__xlC__)
#define BOOST_CXX_IBM BOOST_PREDEF_MAKE_FF_FF(__xlC__)
#else
#define BOOST_CXX_IBM BOOST_PREDEF_VRP_N_N_N(__IBMCPP__)
#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")
#endif

View File

@ -9,14 +9,17 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_INTEL_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_INTEL BOOST_VERSION_NUMBER(0,0,0)
#if defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || \
defined(__ECC)
#undef BOOST_CXX_INTEL
#define BOOST_CXX_INTEL BOOST_PREDEF_VRP_N_N_N(__INTEL_COMPILER)
#define BOOST_CXX_INTEL BOOST_PREDEF_MAKE_N_N_N(__INTEL_COMPILER)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_INTEL,"Intel")
#endif

View File

@ -9,13 +9,16 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_KAI_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_KCC BOOST_VERSION_NUMBER(0,0,0)
#if defined(__KCC)
#undef BOOST_CXX_KCC
#define BOOST_CXX_KCC BOOST_PREDEF_VRP_F_F_FF(__KCC_VERSION)
#define BOOST_CXX_KCC BOOST_PREDEF_MAKE_F_F_FF(__KCC_VERSION)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_KCC,"Kai")
#endif

View File

@ -9,7 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_LLVM_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_LLVM BOOST_VERSION_NUMBER(0,0,0)
@ -18,4 +18,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_CXX_LLVM BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_LLVM,"LLVM")
#endif

View File

@ -9,7 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_METAWARE_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_HIGHC BOOST_VERSION_NUMBER(0,0,0)
@ -18,4 +18,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_CXX_HIGHC BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_HIGHC,"Metaware HighC")
#endif

View File

@ -9,7 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_METROWERKS_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(0,0,0)
@ -36,8 +36,11 @@ http://www.boost.org/LICENSE_1_0.txt)
#elif __MWERKS__ == 0x3206
#define BOOST_CXX_MWERKS BOOST_VERSION_NUMBER(9,5,0)
#else
#define BOOST_CXX_MWERKS BOOST_PREDEF_VRP_F_F_FF(__MWERKS__)
#define BOOST_CXX_MWERKS BOOST_PREDEF_MAKE_F_F_FF(__MWERKS__)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_MWERKS,"Metrowerks")
#endif

View File

@ -9,7 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_MICROTEC_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_MRI BOOST_VERSION_NUMBER(0,0,0)
@ -18,4 +18,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_CXX_MRI BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_MRI,"Microtec")
#endif

View File

@ -9,7 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_MINGW_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_MINGW BOOST_VERSION_NUMBER(0,0,0)
@ -20,4 +20,7 @@ http://www.boost.org/LICENSE_1_0.txt)
BOOST_VERSION_NUMBER(__MINGW32_MAJOR_VERSION,__MINGW32_MINOR_VERSION,0)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_MINGW,"MinGW")
#endif

View File

@ -9,13 +9,16 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_MPW_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_MPW BOOST_VERSION_NUMBER(0,0,0)
#if defined(__MRC__)
#undef BOOST_CXX_MPW
#define BOOST_CXX_MPW BOOST_PREDEF_VRP_FF_FF(__MRC__)
#define BOOST_CXX_MPW BOOST_PREDEF_MAKE_FF_FF(__MRC__)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_MPW,"MPW")
#endif

View File

@ -9,13 +9,16 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_PALM_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_PALM BOOST_VERSION_NUMBER(0,0,0)
#if defined(_PACC_VER)
#undef BOOST_CXX_PALM
#define BOOST_CXX_PALM BOOST_PREDEF_VRP_F_FF_FF_000(_PACC_VER)
#define BOOST_CXX_PALM BOOST_PREDEF_MAKE_F_FF_FF_000(_PACC_VER)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_PALM,"Palm")
#endif

View File

@ -9,7 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_PGI_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_PGI BOOST_VERSION_NUMBER(0,0,0)
@ -18,4 +18,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_CXX_PGI BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_PGI,"PGI")
#endif

View File

@ -9,17 +9,20 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_SGI_MIPSPRO_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_SGI BOOST_VERSION_NUMBER(0,0,0)
#if defined(__sgi)
#undef BOOST_CXX_SGI
#if defined(_SGI_COMPILER_VERSION)
#define BOOST_CXX_SGI BOOST_PREDEF_VRP_N_N_N(_SGI_COMPILER_VERSION)
#define BOOST_CXX_SGI BOOST_PREDEF_MAKE_N_N_N(_SGI_COMPILER_VERSION)
#else
#define BOOST_CXX_SGI BOOST_PREDEF_VRP_N_N_N(_COMPILER_VERSION)
#define BOOST_CXX_SGI BOOST_PREDEF_MAKE_N_N_N(_COMPILER_VERSION)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_SGI,"SGI Mips-pro")
#endif

View File

@ -9,13 +9,16 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_SUNPRO_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_SUNPRO BOOST_VERSION_NUMBER(0,0,0)
#if defined(__SUNPRO_CC)
#undef BOOST_CXX_SUNPRO
#define BOOST_CXX_SUNPRO BOOST_PREDEF_VRP_F_F_F(__SUNPRO_CC)
#define BOOST_CXX_SUNPRO BOOST_PREDEF_MAKE_F_F_F(__SUNPRO_CC)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_SUNPRO,"Sun Pro")
#endif

View File

@ -9,7 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_TENDRA_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_TENDRA BOOST_VERSION_NUMBER(0,0,0)
@ -18,4 +18,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_CXX_TENDRA BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_TENDRA,"Tendra")
#endif

View File

@ -9,7 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_VISUALC_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_MSVC BOOST_VERSION_NUMBER(0,0,0)
@ -35,4 +35,7 @@ http://www.boost.org/LICENSE_1_0.txt)
BOOST_CXX_MSVC_BUILD)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_MSVC,"Microsoft Visual C/C++")
#endif

View File

@ -9,13 +9,16 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_COMPILER_WATCOM_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_CXX_WATCOM BOOST_VERSION_NUMBER(0,0,0)
#if defined(__WATCOMC__)
#undef BOOST_CXX_WATCOM
#define BOOST_CXX_WATCOM BOOST_PREDEF_VRP_NN_NN(__WATCOMC__)
#define BOOST_CXX_WATCOM BOOST_PREDEF_MAKE_NN_NN(__WATCOMC__)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_CXX_WATCOM,"Watcom")
#endif

View File

@ -0,0 +1,17 @@
/*
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_DETAIL__CASSERT_H
#define BOOST_PREDEF_DETAIL__CASSERT_H
#if defined(__cpluplus)
#include <cassert>
#else
#include <assert.h>
#endif
#endif

View File

@ -0,0 +1,15 @@
/*
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_DETAIL__EXCEPTION_H
#define BOOST_PREDEF_DETAIL__EXCEPTION_H
#if defined(__cpluplus)
#include <exception>
#endif
#endif

View File

@ -0,0 +1,17 @@
/*
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_DETAIL_TEST_H
#define BOOST_PREDEF_DETAIL_TEST_H
#if !defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS)
#define BOOST_PREDEF_DECLARE_TEST(x,s)
#endif
#endif

View File

@ -1,32 +0,0 @@
/*
Copyright Redshift Software, Inc. 2008-2010
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_DETAIL_VRP_H
#define BOOST_PREDEF_DETAIL_VRP_H
/* Shorthands for the common version number formats used by vendors... */
/* Hexadecimal... */
#define BOOST_PREDEF_VRP_F_F_F(V) BOOST_VERSION_NUMBER((V&0xF00)>>8,(V&0xF0)>>4,(V&0xF))
#define BOOST_PREDEF_VRP_FF_F_F(V) BOOST_VERSION_NUMBER((V&0xFF00)>>8,(V&0xF0)>>4,(V&0xF))
#define BOOST_PREDEF_VRP_F_F_FF(V) BOOST_VERSION_NUMBER((V&0xF000)>>12,(V&0xF00)>>8,(V&0xFF))
#define BOOST_PREDEF_VRP_FF_FF(V) BOOST_VERSION_NUMBER((V&0xFF00)>>8,(V&0xFF),0)
#define BOOST_PREDEF_VRP_F_FF_FFFF(V) BOOST_VERSION_NUMBER((V&0xF000000)>>24,(V&0xFF0000)>>16,(V&0xFFFF))
#define BOOST_PREDEF_VRP_FF_FF_F(V) BOOST_VERSION_NUMBER((V&0xFF000)>>12,(V&0xFF0)>>4,(V&0xF))
#define BOOST_PREDEF_VRP_F_FF_FF_000(V) BOOST_VERSION_NUMBER((V&0xF0000000)>>28,(V&0xFF00000)>>20,(V&0xFF000)>>12)
/* Decimal... */
#define BOOST_PREDEF_VRP_N_N_N(V) BOOST_VERSION_NUMBER((V)/100,(V%100)/10,(V%10))
#define BOOST_PREDEF_VRP_NN_NN_NN(V) BOOST_VERSION_NUMBER((V)/10000,(V%10000)/100,(V%100))
#define BOOST_PREDEF_VRP_NN_NN(V) BOOST_VERSION_NUMBER((V%10000)/100,(V%100),0)
#define BOOST_PREDEF_VRP_N_N_NN(V) BOOST_VERSION_NUMBER((V)/1000,(V%1000)/100,(V%100))
#define BOOST_PREDEF_VRP_N_NN_NN(V) BOOST_VERSION_NUMBER((V)/10000,(V%10000)/100,(V%100))
#define BOOST_PREDEF_VRP_N_N_N_000(V) BOOST_VERSION_NUMBER((V%100000)/100000,(V%10000)/10000,(V%1000)/1000)
#define BOOST_PREDEF_VRP_N_NN_000(V) BOOST_VERSION_NUMBER((V%100000)/100000,(V%10000)/1000,0)
#define BOOST_PREDEF_VRP_NN_NN_00_NN_00(V) BOOST_VERSION_NUMBER((V)/100000000,(V%100000000)/1000000,(V%10000)/100)
#endif

15
boost/predef/language.h Normal file
View File

@ -0,0 +1,15 @@
/*
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_LANGUAGE_H
#define BOOST_PREDEF_LANGUAGE_H
#include <boost/predef/language/stdc.h>
#include <boost/predef/language/stdcpp.h>
#include <boost/predef/language/objc.h>
#endif

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_LANGUAGE_OBJC_H
#define BOOST_PREDEF_LANGUAGE_OBJC_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LANGUAGE_OBJC`]
Objective C language.
*/
#define BOOST_LANGUAGE_OBJC BOOST_VERSION_NUMBER(0,0,0)
#if defined(__OBJC__)
#undef BOOST_LANGUAGE_OBJC
#define BOOST_LANGUAGE_OBJC BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LANGUAGE_OBJC,"Objective C")
#endif

View File

@ -0,0 +1,39 @@
/*
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_LANGUAGE_STDC_H
#define BOOST_PREDEF_LANGUAGE_STDC_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LANGUAGE_STDC`]
Standard C language. If available, the year of the standard
is detected as 0.0.YYYY.
*/
#define BOOST_LANGUAGE_STDC BOOST_VERSION_NUMBER(0,0,0)
#if defined(__STDC__)
#undef BOOST_LANGUAGE_STDC
#if defined(__STDC_VERSION__)
#if (__STDC_VERSION__ > 100)
#define BOOST_LANGUAGE_STDC BOOST_VERSION_NUMBER(0,0,__STDC_VERSION__/100)
#else
#define BOOST_LANGUAGE_STDC BOOST_VERSION_NUMBER(0,0,1)
#endif
#else
#define BOOST_LANGUAGE_STDC BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LANGUAGE_STDC,"Standard C")
#endif

View File

@ -0,0 +1,72 @@
/*
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_LANGUAGE_STDCPP_H
#define BOOST_PREDEF_LANGUAGE_STDCPP_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
/*`
[heading `BOOST_LANGUAGE_STDCPP`]
Standard C++ language. If available, the year of the standard
is detected as 0.0.YYYY.
*/
#define BOOST_LANGUAGE_STDCPP BOOST_VERSION_NUMBER(0,0,0)
#if defined(__cplusplus)
#undef BOOST_LANGUAGE_STDCPP
#if (__cplusplus > 100)
#define BOOST_LANGUAGE_STDCPP BOOST_VERSION_NUMBER(0,0,__cplusplus/100)
#else
#define BOOST_LANGUAGE_STDCPP BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LANGUAGE_STDCPP,"Standard C++")
/*`
[heading `BOOST_LANGUAGE_STDCPPCLI`]
Standard C++/CLI language. If available, the year of the standard
is detected as 0.0.YYYY.
*/
#define BOOST_LANGUAGE_STDCPPCLI BOOST_VERSION_NUMBER(0,0,0)
#if defined(__cplusplus_cli)
#undef BOOST_LANGUAGE_STDCPPCLI
#if (__cplusplus_cli > 100)
#define BOOST_LANGUAGE_STDCPPCLI BOOST_VERSION_NUMBER(0,0,__cplusplus_cli/100)
#else
#define BOOST_LANGUAGE_STDCPPCLI BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LANGUAGE_STDCPPCLI,"Standard C++/CLI")
/*`
[heading `BOOST_LANGUAGE_STDECPP`]
Standard Embedded C++ language.
*/
#define BOOST_LANGUAGE_STDECPP BOOST_VERSION_NUMBER(0,0,0)
#if defined(__embedded_cplusplus)
#undef BOOST_LANGUAGE_STDECPP
#define BOOST_LANGUAGE_STDECPP BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LANGUAGE_STDECPP,"Standard Embedded C++")
#endif

View File

@ -8,7 +8,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_PREDEF_LIBRARY_C_H
#define BOOST_PREDEF_LIBRARY_C_H
#include <cassert>
#include <boost/predef/detail/_cassert.h>
#include <boost/predef/library/c/gnu.h>
#include <boost/predef/library/c/uc.h>

View File

@ -9,7 +9,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_LIBRARY_C_GNU_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#if defined(__STDC__)
#include <stddef.h>
#elif defined(__cplusplus)
#include <cstddef>
#endif
#define BOOST_LIBC_GNU BOOST_VERSION_NUMBER(0,0,0)
@ -21,6 +27,10 @@ http://www.boost.org/LICENSE_1_0.txt)
#else
#define BOOST_LIBC_GNU \
BOOST_VERSION_NUMBER(__GNU_LIBRARY__,__GNU_LIBRARY_MINOR__,0)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBC_GNU,"GNU")
#endif

View File

@ -9,7 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_LIBRARY_C_UC_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_LIBC_UC BOOST_VERSION_NUMBER(0,0,0)
@ -19,4 +19,7 @@ http://www.boost.org/LICENSE_1_0.txt)
__UCLIBC_MAJOR__,__UCLIBC_MINOR__,__UCLIBC_SUBLEVEL__)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBC_UC,"uC")
#endif

View File

@ -9,7 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_LIBRARY_C_VMS_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_LIBC_VMS BOOST_VERSION_NUMBER(0,0,0)
@ -21,4 +21,7 @@ http://www.boost.org/LICENSE_1_0.txt)
(__CRTL_VER%10000)/100)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBC_VMS,"VMS")
#endif

View File

@ -9,13 +9,16 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_LIBRARY_C_ZOS_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_LIBC_ZOS BOOST_VERSION_NUMBER(0,0,0)
#if defined(__LIBREL__)
#undef BOOST_LIBC_ZOS
#define BOOST_LIBC_ZOS BOOST_PREDEF_VRP_F_FF_FFFF(__LIBREL__)
#define BOOST_LIBC_ZOS BOOST_PREDEF_MAKE_F_FF_FFFF(__LIBREL__)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBC_ZOS,"zOS")
#endif

View File

@ -16,11 +16,11 @@ seems to be <exception>. Boost uses <utility> but as far
as I can tell (RR) it's not a standalone header in most
implementations. Using <exception> also has the benefit of
being available in EC++, so we get a chance to make this work
for embeded users. And since it's not a header impacted by TR1
for embedded users. And since it's not a header impacted by TR1
there's no magic needed for inclusion in the face of the
Boost.TR1 library.
*/
#include <exception>
#include <boost/predef/detail/_exception.h>
/*
STLPort library; this _must_ come first, otherwise since
@ -30,7 +30,7 @@ can end up detecting that first rather than STLport:
#include <boost/predef/library/std/stlport.h>
/*
The rest in apha order, except for Dinkumware.
The rest in alpha order, except for Dinkumware.
*/
#include <boost/predef/library/std/libcomo.h>
#include <boost/predef/library/std/modena.h>

View File

@ -9,17 +9,20 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_LIBRARY_STD_DINKUMWARE_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_LIBSTD_DINKUMWARE BOOST_VERSION_NUMBER(0,0,0)
#if (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER)
#undef BOOST_LIBSTD_DINKUMWARE
#if defined(_CPPLIB_VER)
#define BOOST_LIBSTD_DINKUMWARE BOOST_PREDEF_VRP_NN_NN(__CPPLIB_VER)
#define BOOST_LIBSTD_DINKUMWARE BOOST_PREDEF_MAKE_NN_NN(__CPPLIB_VER)
#else
#define BOOST_LIBSTD_DINKUMWARE BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_DINKUMWARE,"Dinkumware")
#endif

View File

@ -9,7 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_LIBRARY_STD_LIBCOMO_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_LIBSTD_COMO BOOST_VERSION_NUMBER(0,0,0)
@ -18,4 +18,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_LIBSTD_COMO BOOST_VERSION_NUMBER(__LIBCOMO_VERSION__,0,0)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_COMO,"Como")
#endif

View File

@ -9,7 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_LIBRARY_STD_MODENA_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_LIBSTD_MSIPL BOOST_VERSION_NUMBER(0,0,0)
@ -18,4 +18,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_LIBSTD_MSIPL BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_MSIPL,"Modena MSIPL")
#endif

View File

@ -9,17 +9,20 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_LIBRARY_STD_MSL_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_LIBSTD_MSL BOOST_VERSION_NUMBER(0,0,0)
#if defined(__MSL_CPP__) || defined(__MSL__)
#undef BOOST_LIBSTD_MSL
#if defined(__MSL_CPP__)
#define BOOST_LIBSTD_MSL BOOST_PREDEF_VRP_F_F_FF(__MSL_CPP__)
#define BOOST_LIBSTD_MSL BOOST_PREDEF_MAKE_F_F_FF(__MSL_CPP__)
#else
#define BOOST_LIBSTD_MSL BOOST_PREDEF_VRP_F_F_FF(__MSL__)
#define BOOST_LIBSTD_MSL BOOST_PREDEF_MAKE_F_F_FF(__MSL__)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_MSL,"Metrowerks")
#endif

View File

@ -9,7 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_LIBRARY_STD_ROGUEWAVE_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_LIBSTD_RW BOOST_VERSION_NUMBER(0,0,0)
@ -17,13 +17,16 @@ http://www.boost.org/LICENSE_1_0.txt)
#undef BOOST_LIBSTD_RW
#if defined(_RWSTD_VER)
#if _RWSTD_VER < 0x010000
#define BOOST_LIBSTD_RW BOOST_PREDEF_VRP_FF_FF_F(_RWSTD_VER)
#define BOOST_LIBSTD_RW BOOST_PREDEF_MAKE_FF_FF_F(_RWSTD_VER)
#else
#define BOOST_LIBSTD_RW BOOST_PREDEF_VRP_FF_FF_FF(_RWSTD_VER)
#define BOOST_LIBSTD_RW BOOST_PREDEF_MAKE_FF_FF_FF(_RWSTD_VER)
#endif
#else
#define BOOST_LIBSTD_RW BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_RW,"Roguewave")
#endif

View File

@ -9,17 +9,20 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_LIBRARY_STD_SGI_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_LIBSTD_SGI BOOST_VERSION_NUMBER(0,0,0)
#if defined(__STL_CONFIG_H)
#undef BOOST_LIBSTD_SGI
#if defined(__SGI_STL)
#define BOOST_LIBSTD_SGI BOOST_PREDEF_VRP_F_F_F(__SGI_STL)
#define BOOST_LIBSTD_SGI BOOST_PREDEF_MAKE_F_F_F(__SGI_STL)
#else
#define BOOST_LIBSTD_SGI BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_SGI,"SGI")
#endif

View File

@ -9,17 +9,22 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_LIBRARY_STD_STDCPP3_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_LIBSTD_GNU BOOST_VERSION_NUMBER(0,0,0)
#if defined(__GLIBCPP__) || defined(__GLIBCXX__)
#undef BOOST_LIBSTD_GNU
#if defined(__GLIBCXX__)
#define BOOST_LIBSTD_GNU BOOST_PREDEF_VRP_NN_NN_NN(__GLIBCXX__)
#define BOOST_LIBSTD_GNU BOOST_PREDEF_MAKE_YYYY_MM_DD(__GLIBCXX__)
#elif
#define BOOST_LIBSTD_GNU BOOST_PREDEF_MAKE_YYYY_MM_DD(__GLIBCPP__)
#else
#define BOOST_LIBSTD_GNU BOOST_PREDEF_VRP_NN_NN_NN(__GLIBCPP__)
#define BOOST_LIBSTD_GNU BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_GNU,"GNU")
#endif

View File

@ -9,7 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_LIBRARY_STD_STLPORT_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_LIBSTD_STLPORT BOOST_VERSION_NUMBER(0,0,0)
@ -19,10 +19,13 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_LIBSTD_STLPORT \
BOOST_VERSION_NUMBER(_STLPORT_MAJOR,_STLPORT_MINOR,_STLPORT_PATCHLEVEL)
#elif defined(_STLPORT_VERSION)
#define BOOST_LIBSTD_STLPORT BOOST_PREDEF_VRP_F_F_F(_STLPORT_VERSION)
#define BOOST_LIBSTD_STLPORT BOOST_PREDEF_MAKE_F_F_F(_STLPORT_VERSION)
#else
#define BOOST_LIBSTD_STLPORT BOOST_PREDEF_VRP_F_F_F(__SGI_STL_PORT)
#define BOOST_LIBSTD_STLPORT BOOST_PREDEF_MAKE_F_F_F(__SGI_STL_PORT)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_STLPORT,"STLport")
#endif

View File

@ -9,7 +9,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_PREDEF_LIBRARY_STD_VACPP_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_LIBSTD_IBM BOOST_VERSION_NUMBER(0,0,0)
@ -18,4 +18,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_LIBSTD_IBM BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_LIBSTD_IBM,"IBM VACPP")
#endif

72
boost/predef/make.h Normal file
View File

@ -0,0 +1,72 @@
/*
Copyright Redshift Software, Inc. 2008-2010
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)
*/
#include <boost/predef/detail/test.h>
#ifndef BOOST_PREDEF_MAKE_H
#define BOOST_PREDEF_MAKE_H
/*
Shorthands for the common version number formats used by vendors...
*/
/*`
[heading `BOOST_PREDEF_MAKE_F..` macros]
These set of macros decompose common vendor version number
macros which are composed of hexadecimal digits. The naming
convention indicates what the format of the vendor version
number. Where "`F`" indicates a hexadecimal digit, "`_`"
separates the major/minor/patch parts of the version number,
and "`0`" indicates an ignored hexadecimal digit. Macros are:
*/
/*` `BOOST_PREDER_MAKE_F_F_F(V)` */
#define BOOST_PREDEF_MAKE_F_F_F(V) BOOST_VERSION_NUMBER((V&0xF00)>>8,(V&0xF0)>>4,(V&0xF))
/*` `BOOST_PREDEF_MAKE_FF_F_F(V)` */
#define BOOST_PREDEF_MAKE_FF_F_F(V) BOOST_VERSION_NUMBER((V&0xFF00)>>8,(V&0xF0)>>4,(V&0xF))
/*` `BOOST_PREDEF_MAKE_F_F_FF(V)` */
#define BOOST_PREDEF_MAKE_F_F_FF(V) BOOST_VERSION_NUMBER((V&0xF000)>>12,(V&0xF00)>>8,(V&0xFF))
/*` `BOOST_PREDEF_MAKE_FF_FF(V)` */
#define BOOST_PREDEF_MAKE_FF_FF(V) BOOST_VERSION_NUMBER((V&0xFF00)>>8,(V&0xFF),0)
/*` `BOOST_PREDEF_MAKE_F_FF_FFFF(V)` */
#define BOOST_PREDEF_MAKE_F_FF_FFFF(V) BOOST_VERSION_NUMBER((V&0xF000000)>>24,(V&0xFF0000)>>16,(V&0xFFFF))
/*` `BOOST_PREDEF_MAKE_FF_FF_F(V)` */
#define BOOST_PREDEF_MAKE_FF_FF_F(V) BOOST_VERSION_NUMBER((V&0xFF000)>>12,(V&0xFF0)>>4,(V&0xF))
/*` `BOOST_PREDEF_MAKE_F_FF_FF_000(V)` */
#define BOOST_PREDEF_MAKE_F_FF_FF_000(V) BOOST_VERSION_NUMBER((V&0xF0000000)>>28,(V&0xFF00000)>>20,(V&0xFF000)>>12)
/*`
[heading `BOOST_PREDEF_MAKE_N..` macros]
These set of macros decompose common vendor version number
macros which are composed of decimal digits. The naming
convention indicates what the format of the vendor version
number. Where "`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_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))
/*` `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)
/*` `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)
/*` `BOOST_PREDEF_MAKE_NN_00(V)` */
#define BOOST_PREDEF_MAKE_NN_00(V) BOOST_VERSION_NUMBER((V)/100,0,0)
/*` `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))
#endif

View File

@ -5,11 +5,11 @@ Distributed under the Boost Software License, Version 1.0.
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef BOOST_PREDEF_COMPILER_AIX_H
#define BOOST_PREDEF_COMPILER_AIX_H
#ifndef BOOST_PREDEF_OS_AIX_H
#define BOOST_PREDEF_OS_AIX_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_OS_AIX BOOST_VERSION_NUMBER(0,0,0)
@ -28,4 +28,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_AIX,"AIX")
#endif

View File

@ -5,11 +5,11 @@ Distributed under the Boost Software License, Version 1.0.
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef BOOST_PREDEF_COMPILER_AMIGAOS_H
#define BOOST_PREDEF_COMPILER_AMIGAOS_H
#ifndef BOOST_PREDEF_OS_AMIGAOS_H
#define BOOST_PREDEF_OS_AMIGAOS_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_OS_AMIGAOS BOOST_VERSION_NUMBER(0,0,0)
@ -18,4 +18,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_OS_AMIGAOS BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_AMIGAOS,"Amiga OS")
#endif

View File

@ -5,11 +5,11 @@ Distributed under the Boost Software License, Version 1.0.
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef BOOST_PREDEF_COMPILER_BEOS_H
#define BOOST_PREDEF_COMPILER_BEOS_H
#ifndef BOOST_PREDEF_OS_BEOS_H
#define BOOST_PREDEF_OS_BEOS_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_OS_BEOS BOOST_VERSION_NUMBER(0,0,0)
@ -18,4 +18,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_OS_BEOS BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_BEOS,"Be OS")
#endif

View File

@ -5,11 +5,11 @@ Distributed under the Boost Software License, Version 1.0.
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef BOOST_PREDEF_COMPILER_BSD_H
#define BOOST_PREDEF_COMPILER_BSD_H
#ifndef BOOST_PREDEF_OS_BSD_H
#define BOOST_PREDEF_OS_BSD_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_OS_BSD BOOST_VERSION_NUMBER(0,0,0)
#define BOOST_OS_DRAGONFLY_BSD BOOST_VERSION_NUMBER(0,0,0)
@ -35,7 +35,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#elif defined(BSD4_4)
#define BOOST_OS_BSD BOOST_VERSION_NUMBER(4,4,0)
#elif defined(BSD)
#define BOOST_OS_BSD BOOST_PREDEF_VRP_NN_NN(BSD)
#define BOOST_OS_BSD BOOST_PREDEF_MAKE_NN_NN(BSD)
#else
#define BOOST_OS_BSD BOOST_VERSION_NUMBER(0,0,1)
#endif
@ -68,6 +68,9 @@ http://www.boost.org/LICENSE_1_0.txt)
#elif defined(__NetBSD_Version)
#define BOOST_OS_NET_BSD \
BOOST_PREDEF_VRP_NN_NN_00_NN_00(__NetBSD_Version)
#else
#define BOOST_OS_NET_BSD BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#if defined(__OpenBSD__)
#if defined(OpenBSD2_0)
@ -124,4 +127,12 @@ http://www.boost.org/LICENSE_1_0.txt)
#endif
#endif
#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_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")
#endif

View File

@ -5,11 +5,11 @@ Distributed under the Boost Software License, Version 1.0.
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef BOOST_PREDEF_COMPILER_CYGWIN_H
#define BOOST_PREDEF_COMPILER_CYGWIN_H
#ifndef BOOST_PREDEF_OS_CYGWIN_H
#define BOOST_PREDEF_OS_CYGWIN_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_OS_CYGWIN BOOST_VERSION_NUMBER(0,0,0)
@ -18,4 +18,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_OS_CGYWIN BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_CYGWIN,"Cygwin")
#endif

View File

@ -5,11 +5,11 @@ Distributed under the Boost Software License, Version 1.0.
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef BOOST_PREDEF_COMPILER_HPUX_H
#define BOOST_PREDEF_COMPILER_HPUX_H
#ifndef BOOST_PREDEF_OS_HPUX_H
#define BOOST_PREDEF_OS_HPUX_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_OS_HPUX BOOST_VERSION_NUMBER(0,0,0)
@ -18,4 +18,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_OS_HPUX BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_HPUX,"HP-UX")
#endif

View File

@ -5,11 +5,11 @@ Distributed under the Boost Software License, Version 1.0.
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef BOOST_PREDEF_COMPILER_IRIX_H
#define BOOST_PREDEF_COMPILER_IRIX_H
#ifndef BOOST_PREDEF_OS_IRIX_H
#define BOOST_PREDEF_OS_IRIX_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_OS_IRIX BOOST_VERSION_NUMBER(0,0,0)
@ -18,4 +18,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_OS_IRIX BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_IRIX,"Irix")
#endif

View File

@ -5,11 +5,11 @@ Distributed under the Boost Software License, Version 1.0.
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef BOOST_PREDEF_COMPILER_H
#define BOOST_PREDEF_COMPILER_H
#ifndef BOOST_PREDEF_OS_LINUX_H
#define BOOST_PREDEF_OS_LINUX_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_OS_LINUX BOOST_VERSION_NUMBER(0,0,0)
@ -18,4 +18,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_OS_LINUX BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_LINUX,"Linux")
#endif

View File

@ -5,11 +5,11 @@ Distributed under the Boost Software License, Version 1.0.
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef BOOST_PREDEF_COMPILER_H
#define BOOST_PREDEF_COMPILER_H
#ifndef BOOST_PREDEF_OS_MACOS_H
#define BOOST_PREDEF_OS_MACOS_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_OS_MACOS BOOST_VERSION_NUMBER(0,0,0)
@ -23,4 +23,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_MACOS,"MacOS")
#endif

View File

@ -5,18 +5,18 @@ Distributed under the Boost Software License, Version 1.0.
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef BOOST_PREDEF_COMPILER_H
#define BOOST_PREDEF_COMPILER_H
#ifndef BOOST_PREDEF_OS_QNXNTO_H
#define BOOST_PREDEF_OS_QNXNTO_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_OS_QNX BOOST_VERSION_NUMBER(0,0,0)
#if defined(__QNX__) || defined(__QNXNTO__)
#undef BOOST_OS_QNX
#if defined(_NTO_VERSION)
#define BOOST_OS_QNX BOOST_PREDEF_VRP_NN_NN(_NTO_VERSION)
#define BOOST_OS_QNX BOOST_PREDEF_MAKE_NN_NN(_NTO_VERSION)
#elif defined(__QNX__)
#define BOOST_OS_QNX BOOST_VERSION_NUMBER(4,0,0)
#else
@ -24,4 +24,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_QNX,"QNX-NTO")
#endif

View File

@ -5,11 +5,11 @@ Distributed under the Boost Software License, Version 1.0.
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef BOOST_PREDEF_COMPILER_H
#define BOOST_PREDEF_COMPILER_H
#ifndef BOOST_PREDEF_OS_SOLARIS_H
#define BOOST_PREDEF_OS_SOLARIS_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_OS_SOLARIS BOOST_VERSION_NUMBER(0,0,0)
@ -18,4 +18,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_OS_SOLARIS BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_SOLARIS,"Solaris")
#endif

View File

@ -5,11 +5,11 @@ Distributed under the Boost Software License, Version 1.0.
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef BOOST_PREDEF_COMPILER_H
#define BOOST_PREDEF_COMPILER_H
#ifndef BOOST_PREDEF_OS_UNIX_H
#define BOOST_PREDEF_OS_UNIX_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_OS_UNIX BOOST_VERSION_NUMBER(0,0,0)
@ -19,4 +19,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#define BOOST_OS_UNIX BOOST_VERSION_NUMBER(0,0,1)
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_OS_UNIX,"Unix")
#endif

View File

@ -5,11 +5,11 @@ Distributed under the Boost Software License, Version 1.0.
http://www.boost.org/LICENSE_1_0.txt)
*/
#ifndef BOOST_PREDEF_COMPILER_H
#define BOOST_PREDEF_COMPILER_H
#ifndef BOOST_PREDEF_OS_WINDOWS_H
#define BOOST_PREDEF_OS_WINDOWS_H
#include <boost/predef/version_number.h>
#include <boost/predef/detail/vrp.h>
#include <boost/predef/make.h>
#define BOOST_OS_WINDOWS BOOST_VERSION_NUMBER(0,0,0)
@ -19,4 +19,7 @@ http://www.boost.org/LICENSE_1_0.txt)
#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")
#endif

View File

@ -1,6 +1,6 @@
/*
Copyright Rene Rivera 2005
Copyright Redshift Software, Inc. 2008-2010
Copyright Redshift Software, Inc. 2008-2011
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
@ -9,14 +9,31 @@ http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_PREDEF_VERSION_NUMBER_H
#define BOOST_PREDEF_VERSION_NUMBER_H
/*
/// Defines standard version numbers, with these properties:
/// * Decimal base whole numbers in the range [0,major*10000000]
/// * The number range is designed to allow for a (2,2,5) triplet.
/// Which fits within a 32 bit value.
/// * Values can be specified in any base.
/*`
[heading BOOST_VERSION_NUMBER]
``
BOOST_VERSION_NUMBER(major,minor,patch)
``
Defines standard version numbers, with these properties:
* Decimal base whole numbers in the range [0,major*10000000].
The number range is designed to allow for a (2,2,5) triplet.
Which fits within a 32 bit value.
* The `major` number can be in the [0,99] range.
* The `minor` number can be in the [0,99] range.
* The `patch` number can be in the [0,99999] range.
* Values can be specified in any base. As the defined value
is an constant expression.
* Value can be directly used in both preprocessor and compiler
expressions for comparison to other similarly defined values.
* The implementation enforces the individual ranges for the
major, minor, and patch numbers. And values over the ranges
are truncated (modulo).
*/
#define BOOST_VERSION_NUMBER(major,minor,patch) \
( ((major)*10000000) + ((minor)*100000) + (patch) )
( (((major)%100)*10000000) + (((minor)%100)*100000) + ((patch)%100000) )
#endif

10
jamroot.jam Normal file
View File

@ -0,0 +1,10 @@
# 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)
project predef
: build-dir bin
;
path-constant BOOST_PREDEF_ROOT : . ;

38
libs/predef/doc/build.jam Normal file
View File

@ -0,0 +1,38 @@
# 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)
using quickbook ;
if ! $(BOOST_ROOT)
{
BOOST_ROOT = [ modules.peek : BOOST_ROOT ] ;
}
xml predef
:
predef.qbk
;
explicit predef ;
boostbook standalone
:
predef
:
<xsl:param>boost.root=../../..
<xsl:param>generate.section.toc.level=3
<xsl:param>chunk.section.depth=1
<xsl:param>chunk.first.sections=1
<dependency>images
<dependency>callouts
<dependency>css
;
install images : [ glob $(BOOST_ROOT)/doc/src/images/*.png ] : <location>html/images ;
explicit images ;
install callouts : [ glob $(BOOST_ROOT)/doc/src/images/callouts/*.png ] : <location>html/images/callouts ;
explicit callouts ;
install css : [ glob $(BOOST_ROOT)/doc/src/*.css ] : <location>html ;
explicit css ;

236
libs/predef/doc/predef.qbk Normal file
View File

@ -0,0 +1,236 @@
[article Predef
[quickbook 1.6]
[version 1.0]
[authors [Rivera, Rene]]
[copyright 2005 Rene Rivera, 2008-2011 Redshift Software Inc]
[purpose Identification and specification of predefined macros.]
[license
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])
]
[source-mode teletype]
]
[section Introduction]
This library defines a set of compiler, architecture, operating system,
and library version numbers from the information it can gather of C++
predefined macros or those defined in generally available headers. The
idea for this library grew out of a proposal to extend the Boost Config
library to provide more, and consistent, information than the feature
definitions it supports. What follows is an edited version of that brief
proposal.
[heading Proposal]
The idea is to define a set of macros to identify compilers and
consistently represent their version. This includes:
* A unique BOOST_VERSION_NUMBER(major,minor,patch) macro to specify version
numbers (unfortunately, the name BOOST_VERSION is already taken to designate
the version number of boost itself).
* A compiler identification macro, suitable for use in #if/#elif directives,
for each of the supported compilers. All macros would be defined, regardless
of the compiler. The one macro corresponding to the compiler being used would
be defined, in terms of BOOST_VERSION_NUMBER, to carry the exact compiler
version. All other macros would expand to an expression evaluating to false
(for instance, the token 0) to indicate that the corresponding compiler is not
present.
* "Null values" could be set, for all macros, in
boost/config/select_compiler.hpp; then, for each compiler the corresponding
identification macro would be #undef and re-#defined in the corresponding
boost/compiler/(cc).hpp; however in the context of the Boost.Config
infrastructure using a "prefix" header (to be introduced) or
boost/config/suffix.hpp is a better solution. This point is further
clarified later.
[heading Current Library]
The current Predef library is now, both an independent library, and expanded
in scope. It includes detection and definition of architectures, compilers,
libraries, and operating systems. The key benefits are:
* Version numbers that are always defined so that one doesn't have to guard
with `#ifdef`.
* All possible definitions are included with the single `#include <boost/predef.h>`
so that it's friendly to precompiled header usage.
* Predefs can be directly used in both preprocessor and compiler expressions
for comparison to other similarly defined values.
* The headers are usable from multiple languages, that support the C preprocessor.
In particular C++, C, Objective C, and Objective C++.
[heading Design choices]
An important design choice concerns how to represent compiler versions by means
of a single integer number suitable for use in preprocessing directives. Let's
do some calculation. The "basic" signed type for preprocessing
constant-expressions is long in C90 (and C++, as of 2006) and intmax_t in C99.
The type long shall at least be able to represent the number [^+2 147 483 647].
This means the most significant digit can only be 0, 1 or 2; and if we want all
decimal digits to be able to vary between 0 and 9, the largest range we can
consider is [^\[0, 999 999 999\]]. Distributing evenly, this means 3 decimal
digits for each version number part.
So we can:
# use an uneven distribution or
# use more bits (a larger type) or
# use 3/3/3 and have the particular compiler/platform/stdlib deal with setting
the numbers within the 3-digit range.
It appears relatively safe to go for the first option and set it at 2/2/5. That
covers CodeWarrior and others, which are up to and past 10 for the major number.
Some compilers use the build number in lieu of the patch one; five digits
(which is already reached by VC++ 8) seems a reasonable limit even in this case.
[note A 2/2/6 scheme would allow for bigger patch/build numbers at the cost,
for instance, of limiting the major version number to 20 (or, with further
constraints, to 21).]
It might reassure the reader that this decision is actually encoded in one place
in the code; the definition of BOOST_VERSION_NUMBER.
[heading Future work]
Even though the basics of this library are done, there is much work that can be
done:
* Right now we limit the detection of libraries to known built-in predefined
macros, and to guaranteed to exist system and library headers. It might be
interesting to add something like auto-configuration predefs. This way we can
add definitions for user specific libraries and features.
* Along with the above, it might be good to add some user control as to which
headers are included with the top-level header.
* Additionally, even if there is no auto-configure style option.. It would be
good to add optionally included headers so that user can get consistent
version number definitions for libraries they use.
* Having a consistent set of version number definitions opens the door to
improving the user level syntax of libraries that do checks against version
numbers. Specifically Boost Config's `BOOST_WORKAROUND` macro would benefit
from a more readable syntax. As would the `BOOST_TESTED_AT` detail macro.
* And obviously there's lots of work to do in reformulating the existing
Boost libraries to use the Predef library once it's accepted.
* And there's the continuing work of adding definitions for present and
future compilers, platforms, architectures, and libraries.
[endsect] [/Introduction]
[section Using the predefs]
To use the automatically defined predefs one needs to only include the
single top-level header:
``
#include <boost/predef.h>
``
This defines [*all] the version macros known to the library. For each
macro it will be defined to either a /zero/ valued expression for when
the particular item is not detected, and to a /positive/ value if it
is detected. The predef macros fall onto the four categories each with
macros of a particular prefix:
* `BOOST_ARCHITECTURE_`for system/CPU architecture one is compiling for.
* `BOOST_CXX_` for the compiler one is using.
* `BOOST_LIBC_` and `BOOST_LIBSTD_` for the C and C++ standard library
in use.
* `BOOST_OS_` for the operating system we are compiling to.
[note The detected definitions are for the configuration one is targeting
during the compile. In particular in a cross-compile this means the target
system, and not the host system.]
``
#include <boost/predef.h>
#include <iostream>
#if (APPLICATION_VERSION >= BOOST_VERSION_NUMBER(1,0,0))
bool application_is_at_least_version_1 = true;
#else
bool application_is_at_least_version_1 = false;
#endif
int main()
{
if (application_is_at_least_version_1)
std::cout << "Application is at least version 1.0.0" << std::endl;
if (APPLICATION_VERSION >= BOOST_VERSION_NUMBER(2,0,0))
std::cout << "Application is at least version 2.0.0" << std::endl;
return 0;
}
``
[heading Using existing version predefs]
[heading Using the `BOOST_VERSION_NUMBER` macro]
[endsect]
[section Adding new predefs]
[heading Requirements of the header]
[heading Structure of the header]
``
/*
Copyright Jane Doe 20xx
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_category_tag_H
#define BOOST_PREDEF_category_tag_H
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
#define BOOST_category_tag BOOST_VERSION_NUMBER(0,0,0)
#if defined(condition)
#undef BOOST_category_tag
#if defined(condition)
#define BOOST_category_tag BOOST_VERSION_NUMBER(1,0,0)
#elif defined(__alpha_ev5__)
#define BOOST_category_tag BOOST_VERSION_NUMBER(2,0,0)
#else
#define BOOST_category_tag BOOST_VERSION_NUMBER(0,0,1)
#endif
#endif
#include <boost/predef/detail/test.h>
BOOST_PREDEF_DECLARE_TEST(BOOST_categiry_tag,"Name")
#endif
``
[heading Using utility pattern macros]
[endsect]
[section Reference]
[section `BOOST_ARCHITECTURE_` architecture macros]
[/import ../../../boost/predef/architecture/.*\.h]
[endsect]
[section `BOOST_CXX_` compiler macros]
[/import ../../../boost/predef/compiler/.*\.h]
[endsect]
[section `BOOST_LIBC_` and `BOOST_LIBSTD_` library macros]
[/import ../../../boost/predef/library/.*/.*\.h]
[endsect]
[section `BOOST_OS_` operating system macros]
[/import ../../../boost/predef/os/.*\.h]
[endsect]
[section Version definition macros]
[include ../../../boost/predef/version_number.h]
[include ../../../boost/predef/make.h]
[endsect]
[endsect]

View File

@ -0,0 +1,19 @@
# 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)
project test
: requirements
<include>$(BOOST_PREDEF_ROOT)
<dependency>$(BOOST_PREDEF_ROOT)/boost/predef.h
;
using testing ;
run info_as_cpp.cpp ;
run info_as_c.c ;
run info_as_objcpp.mm ;
run info_as_objc.m ;
run version.cpp ;
run make.cpp ;

View File

@ -0,0 +1,76 @@
/*
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)
*/
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#define BOOST_PREDEF_INTERNAL_GENERATE_TESTS
typedef struct predef_info
{
unsigned tag;
char * name;
char * description;
unsigned value;
} predef_info;
predef_info first_predef_info = { 0x43210DEF , "-" , "-" , 0xFFFFFFFF };
#define BOOST_PREDEF_DECLARE_TEST(x,s) \
predef_info x##_predef_info = { 0x67890DEF , #x , s , x };
#include <boost/predef.h>
predef_info last_predef_info = { 0xFFFFFFFF , "-" , "-" , 0x43210DEF };
int predef_info_compare(const void * a, const void * b)
{
const predef_info ** i = (const predef_info **)a;
const predef_info ** j = (const predef_info **)b;
return strcmp((*i)->name,(*j)->name);
}
int main()
{
predef_info ** predefs = 0;
unsigned predef_count = 0;
unsigned * i = &first_predef_info.tag;
unsigned * e = &last_predef_info.tag;
while (i < e)
{
i += 1;
if (*i == 0x67890DEF)
{
predef_count += 1;
predefs = realloc(predefs,predef_count*sizeof(predef_info*));
predefs[predef_count-1] = (predef_info*)i;
}
}
qsort(predefs,predef_count,sizeof(predef_info*),predef_info_compare);
int x = 0;
puts("** Detected **");
for (x = 0; x < predef_count; ++x)
{
if (predefs[x]->value > 0)
printf("%s = %u (%u,%u,%u) | %s\n",
predefs[x]->name,
predefs[x]->value,
(predefs[x]->value/10000000)%100,
(predefs[x]->value/100000)%100,
(predefs[x]->value)%100000,
predefs[x]->description);
}
puts("** Not Detected **");
for (x = 0; x < predef_count; ++x)
{
if (predefs[x]->value == 0)
printf("%s = %u | %s\n",
predefs[x]->name,
predefs[x]->value,
predefs[x]->description);
}
return 0;
}

View File

@ -0,0 +1,90 @@
/*
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)
*/
#include <string>
#include <iostream>
#include <set>
#define BOOST_PREDEF_INTERNAL_GENERATE_TESTS
namespace
{
struct predef_info
{
std::string name;
std::string description;
unsigned value;
predef_info(
std::string const & n,
std::string const & d,
unsigned v);
predef_info(
predef_info const & other)
: name(other.name)
, description(other.description)
, value(other.value)
{
}
bool operator < (predef_info const & other) const
{
return name < other.name;
}
};
std::set<predef_info> * predefs = 0;
predef_info::predef_info(
std::string const & n,
std::string const & d,
unsigned v)
: name(n)
, description(d)
, value(v)
{
if (!predefs)
{
predefs = new std::set<predef_info>();
}
predefs->insert(*this);
}
}
#define BOOST_PREDEF_DECLARE_TEST(x,s) \
namespace { \
predef_info x##_predef_init(#x,s,x); \
}
#include <boost/predef.h>
int main()
{
std::set<predef_info>::iterator i;
std::set<predef_info>::iterator e = predefs->end();
std::cout << "** Detected **" << std::endl;
for (i = predefs->begin(); i != e; ++i)
{
if (i->value > 0)
std::cout
<< i->name << " = "
<< i->value
<< " (" << (i->value/10000000)%100 << "," << (i->value/100000)%100 << "," << (i->value)%100000 << ") | "
<< i->description
<< std::endl;
}
std::cout << "** Not Detected **" << std::endl;
for (i = predefs->begin(); i != e; ++i)
{
if (i->value == 0)
std::cout
<< i->name << " = "
<< i->value << " | "
<< i->description
<< std::endl;
}
return 0;
}

View File

@ -0,0 +1,7 @@
/*
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)
*/
#include "info_as_c.c"

View File

@ -0,0 +1,7 @@
/*
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)
*/
#include "info_as_cpp.cpp"

78
libs/predef/test/make.cpp Normal file
View File

@ -0,0 +1,78 @@
/*
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)
*/
#include <boost/predef/version_number.h>
#include <boost/predef/make.h>
#include <exception>
#include <vector>
#include <string>
#include <iostream>
namespace
{
struct test_info
{
std::string value;
bool passed;
test_info(std::string const & v, bool p) : value(v), passed(p) {}
test_info(test_info const & o) : value(o.value), passed(o.passed) {}
};
std::vector<test_info> test_results;
}
#define PREDEF_CHECK(X) test_results.push_back(test_info(#X,(X)))
void test_BOOST_VERSION_NUMBER()
{
PREDEF_CHECK(BOOST_PREDEF_MAKE_F_F_F(0xFFF) == BOOST_VERSION_NUMBER(0xF,0xF,0xF));
PREDEF_CHECK(BOOST_PREDEF_MAKE_FF_F_F(0xFFFF) == BOOST_VERSION_NUMBER(0xFF,0xF,0xF));
PREDEF_CHECK(BOOST_PREDEF_MAKE_F_F_FF(0xFFFF) == BOOST_VERSION_NUMBER(0xF,0xF,0xFF));
PREDEF_CHECK(BOOST_PREDEF_MAKE_FF_FF(0xFFFF) == BOOST_VERSION_NUMBER(0xFF,0xFF,0x0));
PREDEF_CHECK(BOOST_PREDEF_MAKE_F_FF_FFFF(0xFFFFFFF) == BOOST_VERSION_NUMBER(0xF,0xFF,0xFFFF));
PREDEF_CHECK(BOOST_PREDEF_MAKE_FF_FF_F(0xFFFFF) == BOOST_VERSION_NUMBER(0xFF,0xFF,0xF));
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_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));
PREDEF_CHECK(BOOST_PREDEF_MAKE_N_NN_NN(99999) == BOOST_VERSION_NUMBER(9,99,99));
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_00(9900) == BOOST_VERSION_NUMBER(99,00,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));
PREDEF_CHECK(BOOST_PREDEF_MAKE_YYYY_MM_DD(20691231) == BOOST_VERSION_NUMBER(99,12,31));
}
int main()
{
test_BOOST_VERSION_NUMBER();
unsigned fail_count = 0;
std::vector<test_info>::iterator i = test_results.begin();
std::vector<test_info>::iterator e = test_results.end();
for (; i != e; ++i)
{
std::cout
<< (i->passed ? "[passed]" : "[failed]")
<< " " << i->value
<< std::endl;
fail_count += i->passed ? 0 : 1;
}
std::cout
<< std::endl
<< "TOTAL: "
<< "passed " << (test_results.size()-fail_count) << ", "
<< "failed " << (fail_count) << ", "
<< "of " << (test_results.size())
<< std::endl;
return fail_count;
}

View File

@ -0,0 +1,62 @@
/*
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)
*/
#include <boost/predef/version_number.h>
#include <exception>
#include <vector>
#include <string>
#include <iostream>
namespace
{
struct test_info
{
std::string value;
bool passed;
test_info(std::string const & v, bool p) : value(v), passed(p) {}
test_info(test_info const & o) : value(o.value), passed(o.passed) {}
};
std::vector<test_info> test_results;
}
#define PREDEF_CHECK(X) test_results.push_back(test_info(#X,(X)))
void test_BOOST_VERSION_NUMBER()
{
PREDEF_CHECK(BOOST_VERSION_NUMBER(0,0,1) == 1L);
PREDEF_CHECK(BOOST_VERSION_NUMBER(99,99,99999) == 999999999L);
PREDEF_CHECK(BOOST_VERSION_NUMBER(299,99,99999) != 2999999999L);
PREDEF_CHECK(BOOST_VERSION_NUMBER(100,99,99999) != 1009999999L);
PREDEF_CHECK(BOOST_VERSION_NUMBER(100,99,99999) == 9999999L);
PREDEF_CHECK(BOOST_VERSION_NUMBER(100,100,100000) == 0L);
}
int main()
{
test_BOOST_VERSION_NUMBER();
unsigned fail_count = 0;
std::vector<test_info>::iterator i = test_results.begin();
std::vector<test_info>::iterator e = test_results.end();
for (; i != e; ++i)
{
std::cout
<< (i->passed ? "[passed]" : "[failed]")
<< " " << i->value
<< std::endl;
fail_count += i->passed ? 0 : 1;
}
std::cout
<< std::endl
<< "TOTAL: "
<< "passed " << (test_results.size()-fail_count) << ", "
<< "failed " << (fail_count) << ", "
<< "of " << (test_results.size())
<< std::endl;
return fail_count;
}