Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r75741 - in sandbox/predef: boost/predef boost/predef/compiler boost/predef/language boost/predef/library boost/predef/library/c boost/predef/library/std boost/predef/os libs/predef/doc libs/predef/doc/html libs/predef/doc/html/images libs/predef/doc/html/images/callouts libs/predef/doc/html/predef libs/predef/test
From: grafikrobot_at_[hidden]
Date: 2011-11-30 00:54:30


Author: grafik
Date: 2011-11-30 00:54:23 EST (Wed, 30 Nov 2011)
New Revision: 75741
URL: http://svn.boost.org/trac/boost/changeset/75741

Log:
Another cleanup pass.. And a first pass at documentation.
Added:
   sandbox/predef/boost/predef/library/std/cxx.h (contents, props changed)
   sandbox/predef/libs/predef/doc/html/
   sandbox/predef/libs/predef/doc/html/boostbook.css (contents, props changed)
   sandbox/predef/libs/predef/doc/html/docutils.css (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/
   sandbox/predef/libs/predef/doc/html/images/alert.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/blank.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/callouts/
   sandbox/predef/libs/predef/doc/html/images/callouts/1.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/callouts/10.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/callouts/11.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/callouts/12.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/callouts/13.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/callouts/14.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/callouts/15.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/callouts/2.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/callouts/3.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/callouts/4.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/callouts/5.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/callouts/6.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/callouts/7.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/callouts/8.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/callouts/9.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/caution.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/draft.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/home.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/important.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/next.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/next_disabled.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/note.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/prev.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/prev_disabled.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/smiley.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/tip.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/toc-blank.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/toc-minus.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/toc-plus.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/up.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/up_disabled.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/images/warning.png (contents, props changed)
   sandbox/predef/libs/predef/doc/html/index.html (contents, props changed)
   sandbox/predef/libs/predef/doc/html/minimal.css (contents, props changed)
   sandbox/predef/libs/predef/doc/html/predef/
   sandbox/predef/libs/predef/doc/html/predef/adding_new_predefs.html (contents, props changed)
   sandbox/predef/libs/predef/doc/html/predef/introduction.html (contents, props changed)
   sandbox/predef/libs/predef/doc/html/predef/reference.html (contents, props changed)
   sandbox/predef/libs/predef/doc/html/predef/using_the_predefs.html (contents, props changed)
   sandbox/predef/libs/predef/doc/html/reference.css (contents, props changed)
Text files modified:
   sandbox/predef/boost/predef/compiler/borland.h | 9 +
   sandbox/predef/boost/predef/compiler/comeau.h | 9 +
   sandbox/predef/boost/predef/compiler/compaq.h | 9 +
   sandbox/predef/boost/predef/compiler/cygwin.h | 8 +
   sandbox/predef/boost/predef/compiler/diab.h | 9 +
   sandbox/predef/boost/predef/compiler/digitalmars.h | 9 +
   sandbox/predef/boost/predef/compiler/dignus.h | 9 +
   sandbox/predef/boost/predef/compiler/edg.h | 9 +
   sandbox/predef/boost/predef/compiler/ekopath.h | 9 +
   sandbox/predef/boost/predef/compiler/gcc.h | 11 +
   sandbox/predef/boost/predef/compiler/gcc_xml.h | 8 +
   sandbox/predef/boost/predef/compiler/greenhills.h | 9 +
   sandbox/predef/boost/predef/compiler/hp_acc.h | 9 +
   sandbox/predef/boost/predef/compiler/iar.h | 9 +
   sandbox/predef/boost/predef/compiler/ibm.h | 9 +
   sandbox/predef/boost/predef/compiler/intel.h | 9 +
   sandbox/predef/boost/predef/compiler/kai.h | 9 +
   sandbox/predef/boost/predef/compiler/llvm.h | 8 +
   sandbox/predef/boost/predef/compiler/metaware.h | 8 +
   sandbox/predef/boost/predef/compiler/metrowerks.h | 35 ++---
   sandbox/predef/boost/predef/compiler/microtec.h | 8 +
   sandbox/predef/boost/predef/compiler/mingw.h | 9 +
   sandbox/predef/boost/predef/compiler/mpw.h | 9 +
   sandbox/predef/boost/predef/compiler/palm.h | 9 +
   sandbox/predef/boost/predef/compiler/pgi.h | 8 +
   sandbox/predef/boost/predef/compiler/sgi_mipspro.h | 9 +
   sandbox/predef/boost/predef/compiler/sunpro.h | 9 +
   sandbox/predef/boost/predef/compiler/tendra.h | 8 +
   sandbox/predef/boost/predef/compiler/visualc.h | 9 +
   sandbox/predef/boost/predef/compiler/watcom.h | 9 +
   sandbox/predef/boost/predef/language/objc.h | 4
   sandbox/predef/boost/predef/language/stdc.h | 4
   sandbox/predef/boost/predef/language/stdcpp.h | 21 ++
   sandbox/predef/boost/predef/library/c/gnu.h | 9 +
   sandbox/predef/boost/predef/library/c/uc.h | 9 +
   sandbox/predef/boost/predef/library/c/vms.h | 9 +
   sandbox/predef/boost/predef/library/c/zos.h | 19 ++
   sandbox/predef/boost/predef/library/std.h | 5
   sandbox/predef/boost/predef/library/std/dinkumware.h | 9 +
   sandbox/predef/boost/predef/library/std/libcomo.h | 11 +
   sandbox/predef/boost/predef/library/std/modena.h | 10 +
   sandbox/predef/boost/predef/library/std/msl.h | 9 +
   sandbox/predef/boost/predef/library/std/roguewave.h | 9 +
   sandbox/predef/boost/predef/library/std/sgi.h | 9 +
   sandbox/predef/boost/predef/library/std/stdcpp3.h | 13 +
   sandbox/predef/boost/predef/library/std/stlport.h | 9 +
   sandbox/predef/boost/predef/library/std/vacpp.h | 8 +
   sandbox/predef/boost/predef/os/aix.h | 7 +
   sandbox/predef/boost/predef/os/amigaos.h | 10 +
   sandbox/predef/boost/predef/os/beos.h | 8 +
   sandbox/predef/boost/predef/os/bsd.h | 27 +++
   sandbox/predef/boost/predef/version_number.h | 10
   sandbox/predef/libs/predef/doc/build.jam | 4
   sandbox/predef/libs/predef/doc/predef.qbk | 232 +++++++++++++++++++++++++++++++++++----
   sandbox/predef/libs/predef/test/build.jam | 14 +-
   55 files changed, 642 insertions(+), 128 deletions(-)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Modified: sandbox/predef/boost/predef/language/objc.h
==============================================================================
--- sandbox/predef/boost/predef/language/objc.h (original)
+++ sandbox/predef/boost/predef/language/objc.h 2011-11-30 00:54:23 EST (Wed, 30 Nov 2011)
@@ -14,7 +14,7 @@
 /*`
 [heading `BOOST_LANGUAGE_OBJC`]
 
-Objective C language.
+[@http://en.wikipedia.org/wiki/Objective-C Objective-C] language.
  */
 
 #define BOOST_LANGUAGE_OBJC BOOST_VERSION_NUMBER(0,0,0)
@@ -25,6 +25,6 @@
 #endif
 
 #include <boost/predef/detail/test.h>
-BOOST_PREDEF_DECLARE_TEST(BOOST_LANGUAGE_OBJC,"Objective C")
+BOOST_PREDEF_DECLARE_TEST(BOOST_LANGUAGE_OBJC,"Objective-C")
 
 #endif

Modified: sandbox/predef/boost/predef/language/stdc.h
==============================================================================
--- sandbox/predef/boost/predef/language/stdc.h (original)
+++ sandbox/predef/boost/predef/language/stdc.h 2011-11-30 00:54:23 EST (Wed, 30 Nov 2011)
@@ -14,8 +14,8 @@
 /*`
 [heading `BOOST_LANGUAGE_STDC`]
 
-Standard C language. If available, the year of the standard
-is detected as 0.0.YYYY.
+[@http://en.wikipedia.org/wiki/C_(programming_language) Standard C] language.
+If available, the year of the standard is detected as 0.0.YYYY.
  */
 
 #define BOOST_LANGUAGE_STDC BOOST_VERSION_NUMBER(0,0,0)

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

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

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

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

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

Modified: sandbox/predef/boost/predef/library/std.h
==============================================================================
--- sandbox/predef/boost/predef/library/std.h (original)
+++ sandbox/predef/boost/predef/library/std.h 2011-11-30 00:54:23 EST (Wed, 30 Nov 2011)
@@ -1,7 +1,5 @@
 /*
-Copyright Redshift Software, Inc. 2008-2010
-Copyright John Maddock 2001-2003
-Copyright Jens Maurer 2001-2002
+Copyright Redshift Software, Inc. 2008-2011
 Distributed under the Boost Software License, Version 1.0.
 (See accompanying file LICENSE_1_0.txt or copy at
 http://www.boost.org/LICENSE_1_0.txt)
@@ -32,6 +30,7 @@
 /*
 The rest in alpha order, except for Dinkumware.
 */
+#include <boost/predef/library/std/cxx.h>
 #include <boost/predef/library/std/libcomo.h>
 #include <boost/predef/library/std/modena.h>
 #include <boost/predef/library/std/msl.h>

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

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

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

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

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

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

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

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

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

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

Modified: sandbox/predef/boost/predef/os/aix.h
==============================================================================
--- sandbox/predef/boost/predef/os/aix.h (original)
+++ sandbox/predef/boost/predef/os/aix.h 2011-11-30 00:54:23 EST (Wed, 30 Nov 2011)
@@ -11,6 +11,13 @@
 #include <boost/predef/version_number.h>
 #include <boost/predef/make.h>
 
+/*`
+[heading `BOOST_OS_`]
+
+[@http://en.wikipedia.org/wiki/XXX AIX] operating system.
+Version number available as major, minor, and patch.
+ */
+
 #define BOOST_OS_AIX BOOST_VERSION_NUMBER(0,0,0)
 
 #if defined(_AIX) || defined(__TOS_AIX__)

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

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

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

Modified: sandbox/predef/boost/predef/version_number.h
==============================================================================
--- sandbox/predef/boost/predef/version_number.h (original)
+++ sandbox/predef/boost/predef/version_number.h 2011-11-30 00:54:23 EST (Wed, 30 Nov 2011)
@@ -10,7 +10,7 @@
 #define BOOST_PREDEF_VERSION_NUMBER_H
 
 /*`
-[heading BOOST_VERSION_NUMBER]
+[heading `BOOST_VERSION_NUMBER`]
 
 ``
 BOOST_VERSION_NUMBER(major,minor,patch)
@@ -18,12 +18,12 @@
 
 Defines standard version numbers, with these properties:
 
-* Decimal base whole numbers in the range [0,major*10000000].
+* Decimal base whole numbers in the range \[0,1000000000).
   The number range is designed to allow for a (2,2,5) triplet.
   Which fits within a 32 bit value.
-* The `major` number can be in the [0,99] range.
-* The `minor` number can be in the [0,99] range.
-* The `patch` number can be in the [0,99999] range.
+* The `major` number can be in the \[0,99\] range.
+* The `minor` number can be in the \[0,99\] range.
+* The `patch` number can be in the \[0,99999\] range.
 * Values can be specified in any base. As the defined value
   is an constant expression.
 * Value can be directly used in both preprocessor and compiler

Modified: sandbox/predef/libs/predef/doc/build.jam
==============================================================================
--- sandbox/predef/libs/predef/doc/build.jam (original)
+++ sandbox/predef/libs/predef/doc/build.jam 2011-11-30 00:54:23 EST (Wed, 30 Nov 2011)
@@ -13,6 +13,8 @@
 xml predef
     :
         predef.qbk
+ :
+ <dependency>$(BOOST_PREDEF_ROOT)/boost/predef.h
     ;
 explicit predef ;
 
@@ -21,7 +23,7 @@
         predef
     :
         <xsl:param>boost.root=../../..
- <xsl:param>generate.section.toc.level=3
+ #<xsl:param>generate.section.toc.level=3
         <xsl:param>chunk.section.depth=1
         <xsl:param>chunk.first.sections=1
     

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

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

Added: sandbox/predef/libs/predef/doc/html/images/alert.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/blank.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/callouts/1.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/callouts/10.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/callouts/11.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/callouts/12.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/callouts/13.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/callouts/14.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/callouts/15.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/callouts/2.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/callouts/3.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/callouts/4.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/callouts/5.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/callouts/6.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/callouts/7.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/callouts/8.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/callouts/9.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/caution.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/draft.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/home.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/important.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/next.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/next_disabled.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/note.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/prev.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/prev_disabled.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/smiley.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/tip.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/toc-blank.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/toc-minus.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/toc-plus.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/up.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/up_disabled.png
==============================================================================
Binary file. No diff available.

Added: sandbox/predef/libs/predef/doc/html/images/warning.png
==============================================================================
Binary file. No diff available.

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

Added: sandbox/predef/libs/predef/doc/html/minimal.css
==============================================================================
--- (empty file)
+++ sandbox/predef/libs/predef/doc/html/minimal.css 2011-11-30 00:54:23 EST (Wed, 30 Nov 2011)
@@ -0,0 +1,22 @@
+/*
+
+ © Copyright Beman Dawes, 2007
+
+ Distributed under the Boost Software License, Version 1.0.
+ See www.boost.org/LICENSE_1_0.txt
+
+*/
+
+/*******************************************************************************
+ Body
+*******************************************************************************/
+
+body { font-family: sans-serif; margin: 1em; }
+
+/*******************************************************************************
+ Table
+*******************************************************************************/
+
+table { margin: 0.5em; }
+
+/*** end ***/
\ No newline at end of file

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

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

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

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

Added: sandbox/predef/libs/predef/doc/html/reference.css
==============================================================================
--- (empty file)
+++ sandbox/predef/libs/predef/doc/html/reference.css 2011-11-30 00:54:23 EST (Wed, 30 Nov 2011)
@@ -0,0 +1,11 @@
+/*============================================================================
+ Copyright 2003-2004 Douglas Gregor
+ Distributed under the Boost Software License, Version 1.0. (See accompany-
+ ing file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+============================================================================*/
+
+PRE.synopsis {
+ background-color: #e0ffff;
+ border: thin solid blue;
+ padding: 1em
+}
\ No newline at end of file

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

Modified: sandbox/predef/libs/predef/test/build.jam
==============================================================================
--- sandbox/predef/libs/predef/test/build.jam (original)
+++ sandbox/predef/libs/predef/test/build.jam 2011-11-30 00:54:23 EST (Wed, 30 Nov 2011)
@@ -11,9 +11,11 @@
 
 using testing ;
 
-run info_as_cpp.cpp ;
-run info_as_c.c ;
-run info_as_objcpp.mm ;
-run info_as_objc.m ;
-run version.cpp ;
-run make.cpp ;
+test-suite config :
+ [ run info_as_cpp.cpp : : : <test-info>always_show_run_output ]
+ [ run info_as_c.c : : : <test-info>always_show_run_output ]
+ [ run info_as_objcpp.mm : : : <test-info>always_show_run_output ]
+ [ run info_as_objc.m : : : <test-info>always_show_run_output ]
+ [ run version.cpp ]
+ [ run make.cpp ]
+ ;


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk