Compare commits

..

2 Commits

Author SHA1 Message Date
nobody
842e1257fd This commit was manufactured by cvs2svn to create tag
'Version_1_33_0'.

[SVN r30532]
2005-08-12 03:25:34 +00:00
nobody
1dc53e1676 This commit was manufactured by cvs2svn to create branch 'RC_1_33_0'.
[SVN r30300]
2005-07-28 18:22:24 +00:00
369 changed files with 4858 additions and 23087 deletions

1522
config.htm

File diff suppressed because it is too large Load Diff

33
configure vendored
View File

@@ -1304,17 +1304,6 @@ echo "${ECHO_T}Info : .cpp used as extension for tests" >&6
fi;
if test -f /bin/sed ; then
SED=/bin/sed
else
if test -f /usr/bin/sed ; then
SED=/usr/bin/sed
else
SED=sed
fi
fi
echo "$as_me:$LINENO: checking for boost main tree" >&5
echo $ECHO_N "checking for boost main tree... $ECHO_C" >&6
boost_base=
@@ -1326,7 +1315,7 @@ if test "${with_boost+set}" = set; then
#echo "--with boost is set"
if test "x$withval" != "x"; then
if test "x$withval" != no; then
boost_base=`echo "$withval" | $SED 's,//*,/,g' | $SED 's,/$,,'`
boost_base=`echo "$withval" | sed 's,//*,/,g' | sed 's,/$,,'`
#echo boost_base=$boost_base
if test -f "$boost_base/boost/config.hpp"; then
if test -f "$boost_base/libs/config/configure"; then :; else
@@ -2182,9 +2171,9 @@ fi
#
for file in $boost_base/libs/config/test/boost_no*.ipp; do
basename=`echo $file | $SED 's/.*boost_\(.*\)\.ipp/\1/'`
macroname=`cat $file | grep '^//[ ]*MACRO:' | $SED 's/.*MACRO:[ ]*\([_A-Z0-9]*\).*/\1/'`
title=`cat $file | grep '^//[ ]*TITLE:' | $SED 's/.*TITLE:[ ]*\([^ ].*\)/\1/'`
basename=`echo $file | sed 's/.*boost_\(.*\)\.ipp/\1/'`
macroname=`cat $file | grep '^//[] []*MACRO:' | sed 's/.*MACRO:[] []*\([]_A-Z0-9[]*\).*/\1/'`
title=`cat $file | grep '^//[] []*TITLE:' | sed 's/.*TITLE:[] []*\([]^ [].*\)/\1/'`
namespace=`echo $macroname | tr [A-Z] [a-z]`
#echo file = $file
@@ -2323,9 +2312,9 @@ done
#
for file in $boost_base/libs/config/test/boost_has*.ipp; do
basename=`echo $file | $SED 's/.*boost_\(.*\)\.ipp/\1/'`
macroname=`cat $file | grep '^//[ ]*MACRO:' | $SED 's/.*MACRO:[ ]*\([_A-Z0-9]*\).*/\1/'`
title=`cat $file | grep '^//[ ]*TITLE:' | $SED 's/.*TITLE:[ ]*\([^ ].*\)/\1/'`
basename=`echo $file | sed 's/.*boost_\(.*\)\.ipp/\1/'`
macroname=`cat $file | grep '^//[] []*MACRO:' | sed 's/.*MACRO:[] []*\([]_A-Z0-9[]*\).*/\1/'`
title=`cat $file | grep '^//[] []*TITLE:' | sed 's/.*TITLE:[] []*\([]^ [].*\)/\1/'`
namespace=`echo $macroname | tr [A-Z] [a-z]`
# echo $file
@@ -2674,10 +2663,9 @@ for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
# 1. Remove the extension, and $U if already installed.
ac_i=`echo "$ac_i" |
sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
# 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
# will be set to the directory where LIBOBJS objects are built.
ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
# 2. Add them.
ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
done
LIBOBJS=$ac_libobjs
@@ -3351,6 +3339,5 @@ fi

View File

@@ -1,61 +0,0 @@
# Boost.Config
#
# Copyright (c) 2001 Beman Dawes
# Copyright (c) 2001 Vesa Karvonen
# Copyright (c) 2001 John Maddock
#
# 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)
# Quickbook
# -----------------------------------------------------------------------------
import quickbook ;
path-constant boost-images : ../../../doc/src/images ;
xml config
:
config.qbk
;
boostbook standalone
:
config
:
<xsl:param>toc.max.depth=2
<xsl:param>toc.section.depth=2
<xsl:param>chunk.section.depth=1
<xsl:param>boost.root=../../../..
# PDF Options:
<format>pdf:<xsl:param>xep.extensions=1
# TOC generation: this is needed for FOP 0.2, but must not be set to zero for FOP-0.9!
<format>pdf:<xsl:param>fop.extensions=0
<format>pdf:<xsl:param>fop1.extensions=0
# No indent on body text:
<format>pdf:<xsl:param>body.start.indent=0pt
# Margin size:
<format>pdf:<xsl:param>page.margin.inner=0.5in
# Margin size:
<format>pdf:<xsl:param>page.margin.outer=0.5in
# Paper type = A4
<format>pdf:<xsl:param>paper.type=A4
# Yes, we want graphics for admonishments:
<xsl:param>admon.graphics=1
# Set this one for PDF generation *only*:
# default pnd graphics are awful in PDF form,
# better use SVG's instead:
<format>pdf:<xsl:param>admon.graphics.extension=".svg"
<format>pdf:<xsl:param>use.role.for.mediaobject=1
<format>pdf:<xsl:param>preferred.mediaobject.role=print
<format>pdf:<xsl:param>admon.graphics.path=$(boost-images)/
<format>pdf:<xsl:param>boost.url.prefix=http://www.boost.org/doc/libs/release/libs/config/doc/html
;
install pdf-install : standalone : <location>. <install-type>PDF ;

View File

@@ -1,32 +0,0 @@
[/
Boost.Config
Copyright (c) 2001 Beman Dawes
Copyright (c) 2001 Vesa Karvonen
Copyright (c) 2001 John Maddock
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)
]
[section Acknowledgements]
Beman Dawes provided the original `config.hpp` and part of this document.
Vesa Karvonen provided a description of the principles (see
[link boost_config.rationale rationale]) and put together an early version of
the current configuration setup.
John Maddock put together the configuration current code, the test
programs, the configuration script and the reference section of this
document.
Matias Capeletto converted the docs to quickbook format.
Numerous boost members, past and present, have contributed fixes to boost's
configuration.
[endsect]

View File

@@ -1,60 +0,0 @@
[article Boost.Config
[quickbook 1.4]
[authors [Beman Dawes, Vesa Karvonen, John Maddock] ]
[copyright 2001-2007 Beman Dawes, Vesa Karvonen, John Maddock]
[category broken compiler workarounds]
[id config]
[dirname config]
[purpose
Helps boost library developers adapt to compiler idiosyncrasies; not intended for library users.
]
[source-mode c++]
[license
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
[@http://www.boost.org/LICENSE_1_0.txt])
]
]
[/ Cited Boost resources ]
[def __BOOST_REGRESSION_TEST_DRIVER__ [@../../../../tools/regression/doc/index.html boost regression test driver]]
[def __BOOST_CONFIG_HEADER__ [@../../../../boost/config.hpp <boost/config.hpp>]]
[def __BOOST_CONFIG_USER_HEADER__ [@../../../../boost/config/user.hpp <boost/config/user.hpp>]]
[def __BOOST_CONFIG_SUFFIX_HEADER__ [@../../../../boost/config/user.hpp <boost/config/suffix.hpp>]]
[def __BOOST_CONFIG_DIR__ ['<boost-root>]`/boost/config/`]
[/ Other web resources ]
[def __STL_PORT__ [@http://stlport.sourceforge.net STLport]]
[def __BOOST_TRACKER__ [@https://svn.boost.org/trac/boost/newticket Trac]]
[def __CORE_LANGUAGE_DR337__ [@http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#337 Core Language DR337]]
[def __PRINCIPLES_AND_PATTERNS_ARTICLE__ [@http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf following article]]
[/ Icons ]
[def __NOTE__ [$images/note.png]]
[def __ALERT__ [$images/caution.png]]
[def __DETAIL__ [$images/note.png]]
[def __TIP__ [$images/tip.png]]
[def __QUESTION_MARK__ [$images/question.png]]
[def __SPACE__ [$images/space.png]]
[def __GO_TO__ [$images/callouts/R.png]]
[/ Document files ]
[include configuring_boost.qbk]
[include macro_reference.qbk]
[include guidelines.qbk]
[include rationale.qbk]
[include acknowledgements.qbk]

View File

@@ -1,434 +0,0 @@
[/
Boost.Config
Copyright (c) 2001 Beman Dawes
Copyright (c) 2001 Vesa Karvonen
Copyright (c) 2001 John Maddock
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)
]
[section Configuring Boost for Your Platform]
[section Using the default boost configuration]
Boost comes already configured for most common compilers and platforms; you
should be able to use boost "as is". Since the compiler is configured
separately from the standard library, the default configuration should work
even if you replace the compiler's standard library with a third-party
standard library (like __STL_PORT__).
Using boost "as is" without trying to reconfigure is the recommended method
for using boost. You can, however, run the configure script if you want to,
and there are regression tests provided that allow you to test the current
boost configuration with your particular compiler setup.
Boost library users can request support for additional compilers or platforms
by visiting our __BOOST_TRACKER__ and submitting a support request.
[endsect]
[section The <boost/config.hpp> header]
Boost library implementations access configuration macros via
#include ``__BOOST_CONFIG_HEADER__``
While Boost library users are not required to include that file directly, or
use those configuration macros, such use is acceptable. The configuration
macros are documented as to their purpose, usage, and limitations which makes
them usable by both Boost library and user code.
Boost [link config_info_macros informational] or [link config_helpers helper]
macros are designed for use by Boost users as well as for our own internal use.
Note however, that the [link config_features feature test] and
[link config_defects defect test] macros were designed for internal use by
Boost libraries, not user code, so they can change at any time (though no
gratuitous changes are made to them). Boost library problems resulting from
changes to the configuration macros are caught by the Boost regression tests,
so the Boost libraries are updated to account for those changes. By contrast,
Boost library user code can be adversely affected by changes to the macros
without warning. The best way to keep abreast of changes to the macros used in
user code is to monitor the discussions on the Boost developers list.
[endsect]
[#config_config_script]
[section Using the configure script]
[important
This configure script only sets up the Boost headers for use with a particular
compiler. It has no effect on Boost.Build, or how the libraries are built.
]
If you know that boost is incorrectly configured for your particular setup, and
you are on a UNIX like platform, then you may want to try and improve things by
running the boost configure script. From a shell command prompt you will need to
cd into ['<boost-root>]`/libs/config/` and type:
[: `sh ./configure` ]
you will see a list of the items being checked as the script works its way
through the regression tests. Note that the configure script only really
auto-detects your compiler if it's called g++, c++ or CC. If you are using
some other compiler you will need to set one or more of the following
environment variables:
[table
[[Variable][Description ]]
[[CXX ][The name of the compiler, for example `c++`. ]]
[[CXXFLAGS][The compiler flags to use, for example `-O2`. ]]
[[LDFLAGS ][The linker flags to use, for example `-L/mypath`. ]]
[[LIBS ][Any libraries to link in, for example `-lpthread`.]]
]
For example to run the configure script with HP aCC, you might use something
like:
export CXX="aCC"
export CXXFLAGS="-Aa -DAportable -D__HPACC_THREAD_SAFE_RB_TREE \
-DRWSTD_MULTI_THREAD -DRW_MULTI_THREAD -D_REENTRANT -D_THREAD_SAFE"
export LDFLAGS="-DAportable"
export LIBS="-lpthread"
sh ./configure
However you run the configure script, when it finishes you will find a
new header -`user.hpp`- located in the ['<boost-root>]`/libs/config/`
directory. [*Note that configure does not install this header into your
boost include path by default]. This header contains all the options
generated by the configure script, plus a header-section that contains
the user settable options from the default version of
__BOOST_CONFIG_USER_HEADER__ (located under __BOOST_CONFIG_DIR__).
There are two ways you can use this header:
* [*Option 1:] copy the header into __BOOST_CONFIG_DIR__ so that it replaces
the default user.hpp provided by boost. This option allows only one
configure-generated setup; boost developers should avoid this option,
as it incurs the danger of accidentally committing a configure-modified
__BOOST_CONFIG_USER_HEADER__ to the cvs repository (something you will not
be thanked for!).
* [*Option 2:] give the header a more memorable name, and place it somewhere
convenient; then, define the macro `BOOST_USER_CONFIG` to point to it. For
example create a new sub-directory __BOOST_CONFIG_DIR__ `user/`, and copy
the header there; for example as `multithread-gcc-config.hpp`. Then, when
compiling add the command line option:
`-DBOOST_USER_CONFIG="<boost/config/user/multithread-gcc-config.hpp>"`, and
boost will use the new configuration header. This option allows you to
generate more than one configuration header, and to keep them separate
from the boost source - so that updates to the source do not interfere
with your configuration.
[endsect]
[#config_user_settable]
[section User settable options]
There are some configuration-options that represent user choices, rather
than compiler defects or platform specific options. These are listed in
`<boost/config/user.hpp>` and at the start of a configure-generated `user.hpp`
header. You can define these on the command line, or by editing
`<boost/config/user.hpp>`, they are listed in the following table:
[table
[[Macro ][Description ]]
[[`BOOST_USER_CONFIG`][
When defined, it should point to the name of the user configuration file
to include prior to any boost configuration files. When not defined,
defaults to [@../../../../boost/config/user.hpp `<boost/config/user.hpp>`].
]]
[[`BOOST_COMPILER_CONFIG`][
When defined, it should point to the name of the compiler configuration
file to use. Defining this cuts out the compiler selection logic, and
eliminates the dependency on the header containing that logic. For
example if you are using gcc, then you could define BOOST_COMPILER_CONFIG
to [@../../../../boost/config/compiler/gcc.hpp `<boost/config/compiler/gcc.hpp>`].
]]
[[`BOOST_STDLIB_CONFIG`][
When defined, it should point to the name of the standard library
configuration file to use. Defining this cuts out the standard library
selection logic, and eliminates the dependency on the header containing
that logic. For example if you are using STLport, then you could define
`BOOST_STDLIB_CONFIG` to
[@../../../../boost/config/stdlib/stlport.hpp `<boost/config/stdlib/stlport.hpp>`].
]]
[[`BOOST_PLATFORM_CONFIG`][
When defined, it should point to the name of the platform configuration
file to use. Defining this cuts out the platform selection logic, and
eliminates the dependency on the header containing that logic. For example
if you are compiling on linux, then you could define `BOOST_PLATFORM_CONFIG`
to [@../../../../boost/config/platform/linux.hpp `<boost/config/platform/linux.hpp>`].
]]
[[`BOOST_NO_COMPILER_CONFIG`][
When defined, no compiler configuration file is selected or included,
define when the compiler is fully conformant with the standard, or where
the user header (see `BOOST_USER_CONFIG`), has had any options necessary
added to it, for example by an autoconf generated configure script.
]]
[[`BOOST_NO_STDLIB_CONFIG` ][
When defined, no standard library configuration file is selected or included,
define when the standard library is fully conformant with the standard, or
where the user header (see `BOOST_USER_CONFIG`), has had any options necessary
added to it, for example by an autoconf generated configure script.
]]
[[`BOOST_NO_PLATFORM_CONFIG` ][
When defined, no platform configuration file is selected or included,
define when the platform is fully conformant with the standard (and has
no useful extra features), or where the user header (see
`BOOST_USER_CONFIG`), has had any options necessary added to it, for example
by an autoconf generated configure script.
]]
[[`BOOST_NO_CONFIG` ][
Equivalent to defining all of `BOOST_NO_COMPILER_CONFIG`,
`BOOST_NO_STDLIB_CONFIG` and `BOOST_NO_PLATFORM_CONFIG`.
]]
[[`BOOST_STRICT_CONFIG` ][
The normal behavior for compiler versions that are newer than the last
known version, is to assume that they have all the same defects as the
last known version. By setting this define, then compiler versions that
are newer than the last known version are assumed to be fully conforming
with the standard. This is probably most useful for boost developers or
testers, and for those who want to use boost to test beta compiler versions.
]]
[[`BOOST_ASSERT_CONFIG` ][
When this flag is set, if the config finds anything unknown, then it will
stop with a #error rather than continue. Boost regression testers should
set this define, as should anyone who wants to quickly check whether boost
is supported on their platform.
]]
[[`BOOST_DISABLE_THREADS` ][
When defined, disables threading support, even if the compiler in its
current translation mode supports multiple threads.
]]
[[`BOOST_DISABLE_WIN32` ][
When defined, disables the use of Win32 specific API's, even when these
are available. Also has the effect of setting `BOOST_DISABLE_THREADS` unless
`BOOST_HAS_PTHREADS` is set. This option may be set automatically by the
config system when it detects that the compiler is in "strict mode".
]]
[[`BOOST_DISABLE_ABI_HEADERS`][
Stops boost headers from including any prefix/suffix headers that normally
control things like struct packing and alignment.
]]
[[`BOOST_ABI_PREFIX`][
A prefix header to include in place of whatever boost.config would normally
select, any replacement should set up struct packing and alignment options
as required.
]]
[[`BOOST_ABI_SUFFIX` ][
A suffix header to include in place of whatever boost.config would normally
select, any replacement should undo the effects of the prefix header.
]]
[[`BOOST_ALL_DYN_LINK`][
Forces all libraries that have separate source, to be linked as dll's rather
than static libraries on Microsoft Windows (this macro is used to turn on
`__declspec(dllimport)` modifiers, so that the compiler knows which symbols
to look for in a dll rather than in a static library).
Note that there may be some libraries that can only be statically linked
(Boost.Test for example) and others which may only be dynamically linked
(Boost.Threads for example), in these cases this macro has no effect.
]]
[[`BOOST_`['WHATEVER]`_DYN_LINK`][
Forces library "whatever" to be linked as a dll rather than a static library
on Microsoft Windows: replace the ['WHATEVER] part of the macro name with the
name of the library that you want to dynamically link to, for example use
`BOOST_DATE_TIME_DYN_LINK` or `BOOST_REGEX_DYN_LINK` etc (this macro is used
to turn on `__declspec(dllimport)` modifiers, so that the compiler knows
which symbols to look for in a dll rather than in a static library).
Note that there may be some libraries that can only be statically linked
(Boost.Test for example) and others which may only be dynamically linked
(Boost.Threads for example), in these cases this macro is unsupported.
]]
[[`BOOST_ALL_NO_LIB`][
Tells the config system not to automatically select which libraries to link
against.
Normally if a compiler supports #pragma lib, then the correct library build
variant will be automatically selected and linked against, simply by the act
of including one of that library's headers. This macro turns that
feature off.
]]
[[`BOOST_`['WHATEVER]`_NO_LIB`][
Tells the config system not to automatically select which library to link
against for library "whatever", replace ['WHATEVER] in the macro name with the
name of the library; for example `BOOST_DATE_TIME_NO_LIB` or `BOOST_REGEX_NO_LIB`.
Normally if a compiler supports `#pragma lib`, then the correct library build
variant will be automatically selected and linked against, simply by the
act of including one of that library's headers. This macro turns that
feature off.
]]
[[`BOOST_LIB_DIAGNOSTIC`][
Causes the auto-linking code to output diagnostic messages indicating the
name of the library that is selected for linking.
]]
[[`BOOST_LIB_TOOLSET`][
Overrides the name of the toolset part of the name of library being linked
to; note if defined this must be defined to a quoted string literal, for
example "abc".
]]
]
[endsect]
[section Advanced configuration usage]
By setting various macros on the compiler command line or by editing
__BOOST_CONFIG_USER_HEADER__, the boost configuration setup can be optimised
in a variety of ways.
Boost's configuration is structured so that the user-configuration is
included first (defaulting to __BOOST_CONFIG_USER_HEADER__ if `BOOST_USER_CONFIG`
is not defined). This sets up any user-defined policies, and gives the
user-configuration a chance to influence what happens next.
Next the compiler, standard library, and platform configuration files are
included. These are included via macros (`BOOST_COMPILER_CONFIG` etc,
[link config_user_settable see user settable macros]), and if the corresponding
macro is undefined then a separate header that detects which compiler/standard
library/platform is in use is included in order to set these. The config
can be told to ignore these headers altogether if the corresponding
`BOOST_NO_XXX` macro is set (for example `BOOST_NO_COMPILER_CONFIG` to
disable including any compiler configuration file -
[link config_user_settable see user settable macros]).
Finally the boost configuration header, includes __BOOST_CONFIG_SUFFIX_HEADER__;
this header contains any boiler plate configuration code - for example where one
boost macro being set implies that another must be set also.
The following usage examples represent just a few of the possibilities:
[section Example 1, creating our own frozen configuration]
Lets suppose that we're building boost with Visual C++ 6, and STLport 4.0. Lets
suppose also that we don't intend to update our compiler or standard library
any time soon. In order to avoid breaking dependencies when we update boost,
we may want to "freeze" our configuration headers, so that we only have to
rebuild our project if the boost code itself has changed, and not because the
boost config has been updated for more recent versions of Visual C++ or STLport.
We'll start by realising that the configuration files in use are:
[@../../../../boost/config/compiler/visualc.hpp `<boost/config/compiler/visualc.hpp>`]
for the compiler,
[@../../../../boost/config/stdlib/stlport.hpp `<boost/config/stdlib/stlport.hpp>`]
for the standard library, and
[@../../../../boost/config/platform/win32.hpp `<boost/config/platform/win32.hpp>`]
for the platform. Next we'll create our own private configuration directory:
`boost/config/mysetup/`, and copy the configuration files into there. Finally,
open up __BOOST_CONFIG_USER_HEADER__ and edit the following defines:
#define BOOST_COMPILER_CONFIG "boost/config/mysetup/visualc.hpp"
#define BOOST_STDLIB_CONFIG "boost/config/mysetup/stlport.hpp"
#define BOOST_USER_CONFIG "boost/config/mysetup/win32.hpp"
Now when you use boost, its configuration header will go straight to our "frozen"
versions, and ignore the default versions, you will now be insulated from any
configuration changes when you update boost. This technique is also useful if
you want to modify some of the boost configuration files; for example if you are
working with a beta compiler release not yet supported by boost.
[endsect]
[section Example 2: skipping files that you don't need]
Lets suppose that you're using boost with a compiler that is fully conformant with
the standard; you're not interested in the fact that older versions of your compiler
may have had bugs, because you know that your current version does not need any
configuration macros setting. In a case like this, you can define
`BOOST_NO_COMPILER_CONFIG` either on the command line, or in __BOOST_CONFIG_USER_HEADER__,
and miss out the compiler configuration header altogether (actually you miss out
two headers, one which works out what the compiler is, and one that configures
boost for it). This has two consequences: the first is that less code has to be c
ompiled, and the second that you have removed a dependency on two boost headers.
[endsect]
[section Example 3: using configure script to freeze the boost configuration]
If you are working on a unix-like platform then you can use the configure script to
generate a "frozen" configuration based on your current compiler setup -
[link config_config_script see using the configure script for more details].
[endsect]
[endsect]
[section Testing the boost configuration]
The boost configuration library provides a full set of regression test programs
under the __BOOST_CONFIG_DIR__ `test/` sub-directory:
[table
[[File][Description]]
[[`config_info.cpp`][
Prints out a detailed description of your compiler/standard library/platform
setup, plus your current boost configuration. The information provided by this
program useful in setting up the boost configuration files. If you report that
boost is incorrectly configured for your compiler/library/platform then please
include the output from this program when reporting the changes required.
]]
[[`config_test.cpp`][
A monolithic test program that includes most of the individual test cases.
This provides a quick check to see if boost is correctly configured for your
compiler/library/platform.
]]
[[`limits_test.cpp`][
Tests your standard library's `std::numeric_limits` implementation (or its boost
provided replacement if `BOOST_NO_LIMITS` is defined). This test file fails with
most versions of numeric_limits, mainly due to the way that some compilers
treat NAN's and infinity.
]]
[[`no_*pass.cpp`][
Individual compiler defect test files. Each of these should compile, if one
does not then the corresponding `BOOST_NO_XXX` macro needs to be defined - see
each test file for specific details.
]]
[[`no_*fail.cpp`][
Individual compiler defect test files. Each of these should not compile, if
one does then the corresponding `BOOST_NO_XXX` macro is defined when it need
not be - see each test file for specific details.
]]
[[`has_*pass.cpp`][
Individual feature test files. If one of these does not compile then the
corresponding `BOOST_HAS_XXX` macro is defined when it should not be - see
each test file for specific details.
]]
[[`has_*fail.cpp`][
Individual feature test files. If one of these does compile then the
corresponding `BOOST_HAS_XXX` macro can be safely defined - see each test
file for specific details.
]]
]
Although you can run the configuration regression tests as individual test
files, there are rather a lot of them, so there are a couple of shortcuts to
help you out:
If you have built the __BOOST_REGRESSION_TEST_DRIVER__, then you can use this to
produce a nice html formatted report of the results using the supplied test file.
Alternatively you can run the configure script like this:
[: `./configure --enable-test`]
in which case the script will test the current configuration rather than
creating a new one from scratch.
If you are reporting the results of these tests for a new
platform/library/compiler then please include a log of the full compiler output,
the output from `config_info.cpp`, and the pass/fail test results.
[endsect]
[endsect]

View File

@@ -1,219 +0,0 @@
[/
Boost.Config
Copyright (c) 2001 Beman Dawes
Copyright (c) 2001 Vesa Karvonen
Copyright (c) 2001 John Maddock
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)
]
[section Guidelines for Boost Authors]
The __BOOST_CONFIG_HEADER__ header is used to pass configuration information
to other boost files, allowing them to cope with platform dependencies such
as arithmetic byte ordering, compiler pragmas, or compiler shortcomings.
Without such configuration information, many current compilers would not work
with the Boost libraries.
Centralizing configuration information in this header reduces the number of
files that must be modified when porting libraries to new platforms, or when
compilers are updated. Ideally, no other files would have to be modified when
porting to a new platform.
Configuration headers are controversial because some view them as condoning
broken compilers and encouraging non-standard subsets. Adding settings for
additional platforms and maintaining existing settings can also be a problem.
In other words, configuration headers are a necessary evil rather than a
desirable feature. The boost config.hpp policy is designed to minimize the
problems and maximize the benefits of a configuration header.
Note that:
* Boost library implementers are not required to "`#include <boost/config.hpp>`",
and are not required in any way to support compilers that do not comply
with the C++ Standard (ISO/IEC 14882).
* If a library implementer wishes to support some non-conforming compiler,
or to support some platform specific feature, "`#include <boost/config.hpp>`"
is the preferred way to obtain configuration information not available from
the standard headers such as `<climits>`, etc.
* If configuration information can be deduced from standard headers such as
`<climits>`, use those standard headers rather than `<boost/config.hpp>`.
* Boost files that use macros defined in `<boost/config.hpp>` should have
sensible, standard conforming, default behavior if the macro is not defined.
This means that the starting point for porting `<boost/config.hpp>` to a new
platform is simply to define nothing at all specific to that platform. In
the rare case where there is no sensible default behavior, an #error message
should describe the problem.
* If a Boost library implementer wants something added to `config.hpp`, post
a request on the Boost mailing list. There is no guarantee such a request
will be honored; the intent is to limit the complexity of config.hpp.
* The intent is to support only compilers which appear on their way to
becoming C++ Standard compliant, and only recent releases of those compilers
at that.
* The intent is not to disable mainstream features now well-supported by the
majority of compilers, such as namespaces, exceptions, RTTI, or templates.
[section:warnings Disabling Compiler Warnings]
The header `<boost/config/warning_disable.hpp>` can be used to disable
certain compiler warings that are hard or impossible to otherwise remove.
Note that:
* This header [*['should never be included by another Boost header]], it should
only ever be used by a library source file or a test case.
* The header should be included [*['before you include any other header]].
* This header only disables warnings that are hard or impossible to otherwise
deal with, and which are typically emitted by one compiler only, or
in one compilers own standard library headers.
Currently it disables the following warnings:
[table
[[Compiler][Warning]]
[[Visual C++ 8 and later][[@http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx C4996]: Error 'function': was declared deprecated]]
[[Intel C++][Warning 1786: relates to the use of "deprecated" standard
library functions rather like C4996 in Visual C++.]]
]
[endsect]
[section Adding New Defect Macros]
When you need to add a new defect macro - either to fix a problem with an
existing library, or when adding a new library - distil the issue down to
a simple test case; often, at this point other (possibly better) workarounds
may become apparent. Secondly always post the test case code to the boost
mailing list and invite comments; remember that C++ is complex and that
sometimes what may appear a defect, may in fact turn out to be a problem
with the authors understanding of the standard.
When you name the macro, follow the `BOOST_NO_`['SOMETHING] naming
convention, so that it's obvious that this is a macro reporting a defect.
Finally, add the test program to the regression tests. You will need to
place the test case in a `.ipp` file with the following comments near the top:
// MACRO: BOOST_NO_FOO
// TITLE: foo
// DESCRIPTION: If the compiler fails to support foo
These comments are processed by the autoconf script, so make sure the format
follows the one given. The file should be named "`boost_no_foo.ipp`", where foo
is the defect description - try and keep the file name under the Mac 30 character
filename limit though. You will also need to provide a function prototype
"`int test()`" that is declared in a namespace with the same name as the macro,
but in all lower case, and which returns zero on success:
namespace boost_no_foo {
int test()
{
// test code goes here:
//
return 0;
}
}
Once the test code is in place in libs/config/test, updating the configuration
test system proceeds as:
* cd into `libs/config/tools` and run `bjam`. This generates the `.cpp`
file test cases from the `.ipp` file, updates the
libs/config/test/all/Jamfile.v2, `config_test.cpp` and `config_info.cpp`.[br][br]
* cd into `libs/config/test/all` and run `bjam `['MACRONAME` compiler-list`], where
['MACRONAME] is the name of the new macro, and ['`compiler-list`] is a space separated list of
compilers to test with.[br][br]
The xxx_pass_test and the xxx_fail_test [*should both report `**passed**`].[br][br]
If ['MACRONAME] is not defined when it should be defined, xxx_pass_test will not report `**passed**`.
If ['MACRONAME] is defined when it should not be defined, xxx_fail_test will not report `**passed**`.[br][br]
* cd into `libs/config/test` and run `bjam config_info config_test `['`compiler-list`].
`config_info` should build and run cleanly for all the compilers in ['`compiler-list`]
while `config_test` should fail for those that have the defect, and pass for those
that do not.
Then you should:
* Define the defect macro in those config headers that require it.
* Document the macro in this documentation (please do not forget this step!!)
* Commit everything.
* Keep an eye on the regression tests for new failures in Boost.Config caused by
the addition.
* Start using the macro.
[endsect]
[section Adding New Feature Test Macros]
When you need to add a macro that describes a feature that the standard does
not require, follow the convention for adding a new defect macro (above), but
call the macro `BOOST_HAS_FOO`, and name the test file "`boost_has_foo.ipp`".
Try not to add feature test macros unnecessarily, if there is a platform
specific macro that can already be used (for example `_WIN32`, `__BEOS__`, or
`__linux`) to identify the feature then use that. Try to keep the macro to a
feature group, or header name, rather than one specific API (for example
`BOOST_HAS_NL_TYPES_H` rather than `BOOST_HAS_CATOPEN`). If the macro
describes a POSIX feature group, then add boilerplate code to
__BOOST_CONFIG_SUFFIX_HEADER__ to auto-detect the feature where possible
(if you are wondering why we can't use POSIX feature test macro directly,
remember that many of these features can be added by third party libraries,
and are not therefore identified inside `<unistd.h>`).
[endsect]
[section Modifying the Boost Configuration Headers]
The aim of boost's configuration setup is that the configuration headers should
be relatively stable - a boost user should not have to recompile their code
just because the configuration for some compiler that they're not interested
in has changed. Separating the configuration into separate compiler/standard
library/platform sections provides for part of this stability, but boost
authors require some amount of restraint as well, in particular:
__BOOST_CONFIG_HEADER__ should never change, don't alter this file.
__BOOST_CONFIG_USER_HEADER__ is included by default, don't add extra code to
this file unless you have to. If you do, please remember to update
[@../../tools/configure.in libs/config/tools/configure.in] as well.
__BOOST_CONFIG_SUFFIX_HEADER__ is always included so be careful about
modifying this file as it breaks dependencies for everyone. This file should
include only "boilerplate" configuration code, and generally should change
only when new macros are added.
[@../../../../boost/config/select_compiler_config.hpp <boost/config/select_compiler_config.hpp>],
[@../../../../boost/config/select_platform_config.hpp <boost/config/select_platform_config.hpp>] and
[@../../../../boost/config/select_stdlib_config.hpp <boost/config/select_stdlib_config.hpp>]
are included by default and should change only if support for a new
compiler/standard library/platform is added.
The compiler/platform/standard library selection code is set up so that unknown
platforms are ignored and assumed to be fully standards compliant - this gives
unknown platforms a "sporting chance" of working "as is" even without running
the configure script.
When adding or modifying the individual mini-configs, assume that future, as
yet unreleased versions of compilers, have all the defects of the current
version. Although this is perhaps unnecessarily pessimistic, it cuts down on
the maintenance of these files, and experience suggests that pessimism is
better placed than optimism here!
[endsect]
[endsect]

View File

@@ -1,5 +0,0 @@
index.html
boost_config/boost_macro_reference.html
boost_config/guidelines_for_boost_authors.html
boost_config/rationale.html
boost_config/acknowledgements.html

View File

@@ -1,61 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Acknowledgements</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="rationale.html" title="Rationale">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="rationale.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.acknowledgements"></a><a class="link" href="acknowledgements.html" title="Acknowledgements">Acknowledgements</a>
</h2></div></div></div>
<p>
Beman Dawes provided the original <code class="computeroutput"><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span></code> and
part of this document.
</p>
<p>
Vesa Karvonen provided a description of the principles (see <a class="link" href="rationale.html" title="Rationale">rationale</a>)
and put together an early version of the current configuration setup.
</p>
<p>
John Maddock put together the configuration current code, the test programs,
the configuration script and the reference section of this document.
</p>
<p>
Matias Capeletto converted the docs to quickbook format.
</p>
<p>
Numerous boost members, past and present, have contributed fixes to boost's
configuration.
</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; 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="rationale.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a>
</div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,376 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Guidelines for Boost Authors</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="boost_macro_reference.html" title="Boost Macro Reference">
<link rel="next" href="rationale.html" title="Rationale">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.guidelines_for_boost_authors"></a><a class="link" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">Guidelines for
Boost Authors</a>
</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings">
Disabling Compiler Warnings</a></span></dt>
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros">Adding
New Defect Macros</a></span></dt>
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros">Adding
New Feature Test Macros</a></span></dt>
<dt><span class="section"><a href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers">Modifying
the Boost Configuration Headers</a></span></dt>
</dl></div>
<p>
The <a href="../../../../../boost/config.hpp" target="_top">&lt;boost/config.hpp&gt;</a>
header is used to pass configuration information to other boost files, allowing
them to cope with platform dependencies such as arithmetic byte ordering, compiler
pragmas, or compiler shortcomings. Without such configuration information,
many current compilers would not work with the Boost libraries.
</p>
<p>
Centralizing configuration information in this header reduces the number of
files that must be modified when porting libraries to new platforms, or when
compilers are updated. Ideally, no other files would have to be modified when
porting to a new platform.
</p>
<p>
Configuration headers are controversial because some view them as condoning
broken compilers and encouraging non-standard subsets. Adding settings for
additional platforms and maintaining existing settings can also be a problem.
In other words, configuration headers are a necessary evil rather than a desirable
feature. The boost config.hpp policy is designed to minimize the problems and
maximize the benefits of a configuration header.
</p>
<p>
Note that:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
Boost library implementers are not required to "<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">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>", and are not required in any
way to support compilers that do not comply with the C++ Standard (ISO/IEC
14882).
</li>
<li>
If a library implementer wishes to support some non-conforming compiler,
or to support some platform specific feature, "<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">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>" is the preferred way to obtain
configuration information not available from the standard headers such
as <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">climits</span><span class="special">&gt;</span></code>, etc.
</li>
<li>
If configuration information can be deduced from standard headers such
as <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">climits</span><span class="special">&gt;</span></code>, use those standard headers rather
than <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
</li>
<li>
Boost files that use macros defined in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
should have sensible, standard conforming, default behavior if the macro
is not defined. This means that the starting point for porting <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> to a new platform is simply to define
nothing at all specific to that platform. In the rare case where there
is no sensible default behavior, an #error message should describe the
problem.
</li>
<li>
If a Boost library implementer wants something added to <code class="computeroutput"><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span></code>,
post a request on the Boost mailing list. There is no guarantee such a
request will be honored; the intent is to limit the complexity of config.hpp.
</li>
<li>
The intent is to support only compilers which appear on their way to becoming
C++ Standard compliant, and only recent releases of those compilers at
that.
</li>
<li>
The intent is not to disable mainstream features now well-supported by
the majority of compilers, such as namespaces, exceptions, RTTI, or templates.
</li>
</ul></div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.guidelines_for_boost_authors.warnings"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings" title="Disabling Compiler Warnings">
Disabling Compiler Warnings</a>
</h3></div></div></div>
<p>
The header <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">warning_disable</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
can be used to disable certain compiler warings that are hard or impossible
to otherwise remove.
</p>
<p>
Note that:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
This header <span class="bold"><strong><span class="emphasis"><em>should never be included
by another Boost header</em></span></strong></span>, it should only ever be
used by a library source file or a test case.
</li>
<li>
The header should be included <span class="bold"><strong><span class="emphasis"><em>before
you include any other header</em></span></strong></span>.
</li>
<li>
This header only disables warnings that are hard or impossible to otherwise
deal with, and which are typically emitted by one compiler only, or in
one compilers own standard library headers.
</li>
</ul></div>
<p>
Currently it disables the following warnings:
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Compiler
</p>
</th>
<th>
<p>
Warning
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
Visual C++ 8 and later
</p>
</td>
<td>
<p>
<a href="http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx" target="_top">C4996</a>:
Error 'function': was declared deprecated
</p>
</td>
</tr>
<tr>
<td>
<p>
Intel C++
</p>
</td>
<td>
<p>
Warning 1786: relates to the use of "deprecated" standard
library functions rather like C4996 in Visual C++.
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.guidelines_for_boost_authors.adding_new_defect_macros"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros" title="Adding New Defect Macros">Adding
New Defect Macros</a>
</h3></div></div></div>
<p>
When you need to add a new defect macro - either to fix a problem with an
existing library, or when adding a new library - distil the issue down to
a simple test case; often, at this point other (possibly better) workarounds
may become apparent. Secondly always post the test case code to the boost
mailing list and invite comments; remember that C++ is complex and that sometimes
what may appear a defect, may in fact turn out to be a problem with the authors
understanding of the standard.
</p>
<p>
When you name the macro, follow the <code class="computeroutput"><span class="identifier">BOOST_NO_</span></code><span class="emphasis"><em>SOMETHING</em></span>
naming convention, so that it's obvious that this is a macro reporting a
defect.
</p>
<p>
Finally, add the test program to the regression tests. You will need to place
the test case in a <code class="computeroutput"><span class="special">.</span><span class="identifier">ipp</span></code>
file with the following comments near the top:
</p>
<pre class="programlisting"><span class="comment">// MACRO: BOOST_NO_FOO
</span><span class="comment">// TITLE: foo
</span><span class="comment">// DESCRIPTION: If the compiler fails to support foo
</span></pre>
<p>
These comments are processed by the autoconf script, so make sure the format
follows the one given. The file should be named "<code class="computeroutput"><span class="identifier">boost_no_foo</span><span class="special">.</span><span class="identifier">ipp</span></code>",
where foo is the defect description - try and keep the file name under the
Mac 30 character filename limit though. You will also need to provide a function
prototype "<code class="computeroutput"><span class="keyword">int</span> <span class="identifier">test</span><span class="special">()</span></code>" that is declared in a namespace with
the same name as the macro, but in all lower case, and which returns zero
on success:
</p>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost_no_foo</span> <span class="special">{</span>
<span class="keyword">int</span> <span class="identifier">test</span><span class="special">()</span>
<span class="special">{</span>
<span class="comment">// test code goes here:
</span> <span class="comment">//
</span> <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
<span class="special">}</span>
<span class="special">}</span>
</pre>
<p>
Once the test code is in place in libs/config/test, updating the configuration
test system proceeds as:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">tools</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span></code>.
This generates the <code class="computeroutput"><span class="special">.</span><span class="identifier">cpp</span></code>
file test cases from the <code class="computeroutput"><span class="special">.</span><span class="identifier">ipp</span></code> file, updates the libs/config/test/all/Jamfile.v2,
<code class="computeroutput"><span class="identifier">config_test</span><span class="special">.</span><span class="identifier">cpp</span></code> and <code class="computeroutput"><span class="identifier">config_info</span><span class="special">.</span><span class="identifier">cpp</span></code>.<br>
<br>
</li>
<li>
cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">test</span><span class="special">/</span><span class="identifier">all</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span>
</code><span class="emphasis"><em>MACRONAME<code class="computeroutput"> <span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>,
where <span class="emphasis"><em>MACRONAME</em></span> is the name of the new macro, and
<span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span> is a space separated
list of compilers to test with.<br> <br> The xxx_pass_test and the
xxx_fail_test <span class="bold"><strong>should both report <code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code></strong></span>.<br> <br> If <span class="emphasis"><em>MACRONAME</em></span>
is not defined when it should be defined, xxx_pass_test will not report
<code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code>. If <span class="emphasis"><em>MACRONAME</em></span>
is defined when it should not be defined, xxx_fail_test will not report
<code class="computeroutput"><span class="special">**</span><span class="identifier">passed</span><span class="special">**</span></code>.<br> <br>
</li>
<li>
cd into <code class="computeroutput"><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">test</span></code> and run <code class="computeroutput"><span class="identifier">bjam</span>
<span class="identifier">config_info</span> <span class="identifier">config_test</span>
</code><span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>.
<code class="computeroutput"><span class="identifier">config_info</span></code> should build
and run cleanly for all the compilers in <span class="emphasis"><em><code class="computeroutput"><span class="identifier">compiler</span><span class="special">-</span><span class="identifier">list</span></code></em></span>
while <code class="computeroutput"><span class="identifier">config_test</span></code> should
fail for those that have the defect, and pass for those that do not.
</li>
</ul></div>
<p>
Then you should:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
Define the defect macro in those config headers that require it.
</li>
<li>
Document the macro in this documentation (please do not forget this step!!)
</li>
<li>
Commit everything.
</li>
<li>
Keep an eye on the regression tests for new failures in Boost.Config
caused by the addition.
</li>
<li>
Start using the macro.
</li>
</ul></div>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros" title="Adding New Feature Test Macros">Adding
New Feature Test Macros</a>
</h3></div></div></div>
<p>
When you need to add a macro that describes a feature that the standard does
not require, follow the convention for adding a new defect macro (above),
but call the macro <code class="computeroutput"><span class="identifier">BOOST_HAS_FOO</span></code>,
and name the test file "<code class="computeroutput"><span class="identifier">boost_has_foo</span><span class="special">.</span><span class="identifier">ipp</span></code>".
Try not to add feature test macros unnecessarily, if there is a platform
specific macro that can already be used (for example <code class="computeroutput"><span class="identifier">_WIN32</span></code>,
<code class="computeroutput"><span class="identifier">__BEOS__</span></code>, or <code class="computeroutput"><span class="identifier">__linux</span></code>) to identify the feature then use
that. Try to keep the macro to a feature group, or header name, rather than
one specific API (for example <code class="computeroutput"><span class="identifier">BOOST_HAS_NL_TYPES_H</span></code>
rather than <code class="computeroutput"><span class="identifier">BOOST_HAS_CATOPEN</span></code>).
If the macro describes a POSIX feature group, then add boilerplate code to
<a href="../../../../../boost/config/user.hpp" target="_top">&lt;boost/config/suffix.hpp&gt;</a>
to auto-detect the feature where possible (if you are wondering why we can't
use POSIX feature test macro directly, remember that many of these features
can be added by third party libraries, and are not therefore identified inside
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">unistd</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>).
</p>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers"></a><a class="link" href="guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers" title="Modifying the Boost Configuration Headers">Modifying
the Boost Configuration Headers</a>
</h3></div></div></div>
<p>
The aim of boost's configuration setup is that the configuration headers
should be relatively stable - a boost user should not have to recompile their
code just because the configuration for some compiler that they're not interested
in has changed. Separating the configuration into separate compiler/standard
library/platform sections provides for part of this stability, but boost
authors require some amount of restraint as well, in particular:
</p>
<p>
<a href="../../../../../boost/config.hpp" target="_top">&lt;boost/config.hpp&gt;</a>
should never change, don't alter this file.
</p>
<p>
<a href="../../../../../boost/config/user.hpp" target="_top">&lt;boost/config/user.hpp&gt;</a>
is included by default, don't add extra code to this file unless you have
to. If you do, please remember to update <a href="../../../tools/configure.in" target="_top">libs/config/tools/configure.in</a>
as well.
</p>
<p>
<a href="../../../../../boost/config/user.hpp" target="_top">&lt;boost/config/suffix.hpp&gt;</a>
is always included so be careful about modifying this file as it breaks dependencies
for everyone. This file should include only "boilerplate" configuration
code, and generally should change only when new macros are added.
</p>
<p>
<a href="../../../../../boost/config/select_compiler_config.hpp" target="_top">&lt;boost/config/select_compiler_config.hpp&gt;</a>,
<a href="../../../../../boost/config/select_platform_config.hpp" target="_top">&lt;boost/config/select_platform_config.hpp&gt;</a>
and <a href="../../../../../boost/config/select_stdlib_config.hpp" target="_top">&lt;boost/config/select_stdlib_config.hpp&gt;</a>
are included by default and should change only if support for a new compiler/standard
library/platform is added.
</p>
<p>
The compiler/platform/standard library selection code is set up so that unknown
platforms are ignored and assumed to be fully standards compliant - this
gives unknown platforms a "sporting chance" of working "as
is" even without running the configure script.
</p>
<p>
When adding or modifying the individual mini-configs, assume that future,
as yet unreleased versions of compilers, have all the defects of the current
version. Although this is perhaps unnecessarily pessimistic, it cuts down
on the maintenance of these files, and experience suggests that pessimism
is better placed than optimism here!
</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; 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="boost_macro_reference.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rationale.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -1,123 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Rationale</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
<link rel="home" href="../index.html" title="Boost.Config">
<link rel="up" href="../index.html" title="Boost.Config">
<link rel="prev" href="guidelines_for_boost_authors.html" title="Guidelines for Boost Authors">
<link rel="next" href="acknowledgements.html" title="Acknowledgements">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.rationale"></a><a class="link" href="rationale.html" title="Rationale">Rationale</a>
</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="rationale.html#boost_config.rationale.the_problem">The problem</a></span></dt>
<dt><span class="section"><a href="rationale.html#boost_config.rationale.the_solution">The solution</a></span></dt>
</dl></div>
<p>
The problem with many traditional "textbook" implementations of configuration
headers (where all the configuration options are in a single "monolithic"
header) is that they violate certain fundamental software engineering principles
which would have the effect of making boost more fragile, more difficult to
maintain and more difficult to use safely. You can find a description of the
principles from the <a href="http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf" target="_top">following
article</a>.
</p>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.rationale.the_problem"></a><a class="link" href="rationale.html#boost_config.rationale.the_problem" title="The problem">The problem</a>
</h3></div></div></div>
<p>
Consider a situation in which you are concurrently developing on multiple
platforms. Then consider adding a new platform or changing the platform definitions
of an existing platform. What happens? Everything, and this does literally
mean everything, recompiles. Isn't it quite absurd that adding a new platform,
which has absolutely nothing to do with previously existing platforms, means
that all code on all existing platforms needs to be recompiled?
</p>
<p>
Effectively, there is an imposed physical dependency between platforms that
have nothing to do with each other. Essentially, the traditional solution
employed by configuration headers does not conform to the Open-Closed Principle:
</p>
<div class="blockquote"><blockquote class="blockquote"><p>
<span class="bold"><strong>"A module should be open for extension but closed
for modification."</strong></span>
</p></blockquote></div>
<p>
Extending a traditional configuration header implies modifying existing code.
</p>
<p>
Furthermore, consider the complexity and fragility of the platform detection
code. What if a simple change breaks the detection on some minor platform?
What if someone accidentally or on purpose (as a workaround for some other
problem) defines some platform dependent macros that are used by the detection
code? A traditional configuration header is one of the most volatile headers
of the entire library, and more stable elements of Boost would depend on
it. This violates the Stable Dependencies Principle:
</p>
<div class="blockquote"><blockquote class="blockquote"><p>
<span class="bold"><strong>"Depend in the direction of stability."</strong></span>
</p></blockquote></div>
<p>
After even a minor change to a traditional configuration header on one minor
platform, almost everything on every platform should be tested if we follow
sound software engineering practice.
</p>
<p>
Another important issue is that it is not always possible to submit changes
to <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
Some boost users are currently working on platforms using tools and libraries
that are under strict Non-Disclosure Agreements. In this situation it is
impossible to submit changes to a traditional monolithic configuration header,
instead some method by which the user can insert their own configuration
code must be provided.
</p>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.rationale.the_solution"></a><a class="link" href="rationale.html#boost_config.rationale.the_solution" title="The solution">The solution</a>
</h3></div></div></div>
<p>
The approach taken by boost's configuration headers is to separate configuration
into three orthogonal parts: the compiler, the standard library and the platform.
Each compiler/standard library/platform gets its own mini-configuration header,
so that changes to one compiler's configuration (for example) does not affect
other compilers. In addition there are measures that can be taken both to
omit the compiler/standard library/platform detection code (so that adding
support to a new platform does not break dependencies), or to freeze the
configuration completely; providing almost complete protection against dependency
changes.
</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; 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock<p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="guidelines_for_boost_authors.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@@ -1,959 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Boost.Config</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
<link rel="home" href="index.html" title="Boost.Config">
<link rel="next" href="boost_config/boost_macro_reference.html" title="Boost Macro Reference">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
<td align="center"><a href="../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav"><a accesskey="n" href="boost_config/boost_macro_reference.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
<div class="article" lang="en">
<div class="titlepage">
<div>
<div><h2 class="title">
<a name="config"></a>Boost.Config</h2></div>
<div><div class="authorgroup"><div class="author"><h3 class="author">
<span class="firstname">Vesa Karvonen, John Maddock</span> <span class="surname">Beman Dawes</span>
</h3></div></div></div>
<div><p class="copyright">Copyright &#169; 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock</p></div>
<div><div class="legalnotice">
<a name="id1010243"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
</p>
</div></div>
</div>
<hr>
</div>
<div class="toc">
<p><b>Table of Contents</b></p>
<dl>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform">Configuring
Boost for Your Platform</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration">Using
the default boost configuration</a></span></dt>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header">The
&lt;boost/config.hpp&gt; header</a></span></dt>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.using_the_configure_script">Using
the configure script</a></span></dt>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.user_settable_options">User
settable options</a></span></dt>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage">Advanced
configuration usage</a></span></dt>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration">Testing
the boost configuration</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html">Boost Macro Reference</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_defects">Macros
that describe defects</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_optional_features">Macros
that describe optional features</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_possible_c__0x_features">Macros
that describe possible C++0x features</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_describe_c__0x_features_not_supported">Macros
that describe C++0x features not supported</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.boost_helper_macros">Boost
Helper Macros</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.boost_informational_macros">Boost
Informational Macros</a></span></dt>
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_for_libraries_with_separate_source_code">Macros
for libraries with separate source code</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="boost_config/guidelines_for_boost_authors.html">Guidelines for
Boost Authors</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="boost_config/guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.warnings">
Disabling Compiler Warnings</a></span></dt>
<dt><span class="section"><a href="boost_config/guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_defect_macros">Adding
New Defect Macros</a></span></dt>
<dt><span class="section"><a href="boost_config/guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.adding_new_feature_test_macros">Adding
New Feature Test Macros</a></span></dt>
<dt><span class="section"><a href="boost_config/guidelines_for_boost_authors.html#boost_config.guidelines_for_boost_authors.modifying_the_boost_configuration_headers">Modifying
the Boost Configuration Headers</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="boost_config/rationale.html">Rationale</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="boost_config/rationale.html#boost_config.rationale.the_problem">The problem</a></span></dt>
<dt><span class="section"><a href="boost_config/rationale.html#boost_config.rationale.the_solution">The solution</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="boost_config/acknowledgements.html">Acknowledgements</a></span></dt>
</dl>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="boost_config.configuring_boost_for_your_platform"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform" title="Configuring Boost for Your Platform">Configuring
Boost for Your Platform</a>
</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration">Using
the default boost configuration</a></span></dt>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header">The
&lt;boost/config.hpp&gt; header</a></span></dt>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.using_the_configure_script">Using
the configure script</a></span></dt>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.user_settable_options">User
settable options</a></span></dt>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage">Advanced
configuration usage</a></span></dt>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration">Testing
the boost configuration</a></span></dt>
</dl></div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.using_the_default_boost_configuration" title="Using the default boost configuration">Using
the default boost configuration</a>
</h3></div></div></div>
<p>
Boost comes already configured for most common compilers and platforms; you
should be able to use boost "as is". Since the compiler is configured
separately from the standard library, the default configuration should work
even if you replace the compiler's standard library with a third-party standard
library (like <a href="http://stlport.sourceforge.net" target="_top">STLport</a>).
</p>
<p>
Using boost "as is" without trying to reconfigure is the recommended
method for using boost. You can, however, run the configure script if you
want to, and there are regression tests provided that allow you to test the
current boost configuration with your particular compiler setup.
</p>
<p>
Boost library users can request support for additional compilers or platforms
by visiting our <a href="https://svn.boost.org/trac/boost/newticket" target="_top">Trac</a>
and submitting a support request.
</p>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.the__boost_config_hpp__header" title="The &lt;boost/config.hpp&gt; header">The
&lt;boost/config.hpp&gt; header</a>
</h3></div></div></div>
<p>
Boost library implementations access configuration macros via
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <a href="../../../../boost/config.hpp" target="_top">&lt;boost/config.hpp&gt;</a>
</pre>
<p>
While Boost library users are not required to include that file directly,
or use those configuration macros, such use is acceptable. The configuration
macros are documented as to their purpose, usage, and limitations which makes
them usable by both Boost library and user code.
</p>
<p>
Boost <a class="link" href="boost_config/boost_macro_reference.html#config_info_macros">informational</a> or <a class="link" href="boost_config/boost_macro_reference.html#config_helpers">helper</a>
macros are designed for use by Boost users as well as for our own internal
use. Note however, that the <a class="link" href="boost_config/boost_macro_reference.html#config_features">feature test</a>
and <a class="link" href="boost_config/boost_macro_reference.html#config_defects">defect test</a> macros were designed
for internal use by Boost libraries, not user code, so they can change at
any time (though no gratuitous changes are made to them). Boost library problems
resulting from changes to the configuration macros are caught by the Boost
regression tests, so the Boost libraries are updated to account for those
changes. By contrast, Boost library user code can be adversely affected by
changes to the macros without warning. The best way to keep abreast of changes
to the macros used in user code is to monitor the discussions on the Boost
developers list.
</p>
</div>
<a name="config_config_script"></a><p>
</p>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.using_the_configure_script"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.using_the_configure_script" title="Using the configure script">Using
the configure script</a>
</h3></div></div></div>
<div class="important"><table border="0" summary="Important">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../../../doc/src/images/important.png"></td>
<th align="left">Important</th>
</tr>
<tr><td align="left" valign="top"><p>
This configure script only sets up the Boost headers for use with a particular
compiler. It has no effect on Boost.Build, or how the libraries are built.
</p></td></tr>
</table></div>
<p>
If you know that boost is incorrectly configured for your particular setup,
and you are on a UNIX like platform, then you may want to try and improve
things by running the boost configure script. From a shell command prompt
you will need to cd into <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code>
and type:
</p>
<div class="blockquote"><blockquote class="blockquote"><p>
<code class="computeroutput"><span class="identifier">sh</span> <span class="special">./</span><span class="identifier">configure</span></code>
</p></blockquote></div>
<p>
you will see a list of the items being checked as the script works its way
through the regression tests. Note that the configure script only really
auto-detects your compiler if it's called g++, c++ or CC. If you are using
some other compiler you will need to set one or more of the following environment
variables:
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Variable
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
CXX
</p>
</td>
<td>
<p>
The name of the compiler, for example <code class="computeroutput"><span class="identifier">c</span><span class="special">++</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
CXXFLAGS
</p>
</td>
<td>
<p>
The compiler flags to use, for example <code class="computeroutput"><span class="special">-</span><span class="identifier">O2</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
LDFLAGS
</p>
</td>
<td>
<p>
The linker flags to use, for example <code class="computeroutput"><span class="special">-</span><span class="identifier">L</span><span class="special">/</span><span class="identifier">mypath</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
LIBS
</p>
</td>
<td>
<p>
Any libraries to link in, for example <code class="computeroutput"><span class="special">-</span><span class="identifier">lpthread</span></code>.
</p>
</td>
</tr>
</tbody>
</table></div>
<p>
For example to run the configure script with HP aCC, you might use something
like:
</p>
<pre class="programlisting"><span class="keyword">export</span> <span class="identifier">CXX</span><span class="special">=</span><span class="string">"aCC"</span>
<span class="keyword">export</span> <span class="identifier">CXXFLAGS</span><span class="special">=</span><span class="string">"-Aa -DAportable -D__HPACC_THREAD_SAFE_RB_TREE \
-DRWSTD_MULTI_THREAD -DRW_MULTI_THREAD -D_REENTRANT -D_THREAD_SAFE"</span>
<span class="keyword">export</span> <span class="identifier">LDFLAGS</span><span class="special">=</span><span class="string">"-DAportable"</span>
<span class="keyword">export</span> <span class="identifier">LIBS</span><span class="special">=</span><span class="string">"-lpthread"</span>
<span class="identifier">sh</span> <span class="special">./</span><span class="identifier">configure</span>
</pre>
<p>
However you run the configure script, when it finishes you will find a new
header -<code class="computeroutput"><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span></code>- located in the <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">libs</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code>
directory. <span class="bold"><strong>Note that configure does not install this
header into your boost include path by default</strong></span>. This header contains
all the options generated by the configure script, plus a header-section
that contains the user settable options from the default version of <a href="../../../../boost/config/user.hpp" target="_top">&lt;boost/config/user.hpp&gt;</a>
(located under <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code>).
There are two ways you can use this header:
</p>
<div class="itemizedlist"><ul type="disc">
<li>
<span class="bold"><strong>Option 1:</strong></span> copy the header into <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code> so that it replaces the default user.hpp
provided by boost. This option allows only one configure-generated setup;
boost developers should avoid this option, as it incurs the danger of
accidentally committing a configure-modified <a href="../../../../boost/config/user.hpp" target="_top">&lt;boost/config/user.hpp&gt;</a>
to the cvs repository (something you will not be thanked for!).
</li>
<li>
<span class="bold"><strong>Option 2:</strong></span> give the header a more memorable
name, and place it somewhere convenient; then, define the macro <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code> to point to it. For
example create a new sub-directory <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code> <code class="computeroutput"><span class="identifier">user</span><span class="special">/</span></code>, and copy the header there; for example
as <code class="computeroutput"><span class="identifier">multithread</span><span class="special">-</span><span class="identifier">gcc</span><span class="special">-</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span></code>. Then, when compiling add the command
line option: <code class="computeroutput"><span class="special">-</span><span class="identifier">DBOOST_USER_CONFIG</span><span class="special">=</span><span class="string">"&lt;boost/config/user/multithread-gcc-config.hpp&gt;"</span></code>,
and boost will use the new configuration header. This option allows you
to generate more than one configuration header, and to keep them separate
from the boost source - so that updates to the source do not interfere
with your configuration.
</li>
</ul></div>
</div>
<a name="config_user_settable"></a><p>
</p>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.user_settable_options"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.user_settable_options" title="User settable options">User
settable options</a>
</h3></div></div></div>
<p>
There are some configuration-options that represent user choices, rather
than compiler defects or platform specific options. These are listed in
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
and at the start of a configure-generated <code class="computeroutput"><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span></code> header.
You can define these on the command line, or by editing <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>, they are listed in the following table:
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Macro
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code>
</p>
</td>
<td>
<p>
When defined, it should point to the name of the user configuration
file to include prior to any boost configuration files. When not
defined, defaults to <a href="../../../../boost/config/user.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">user</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_COMPILER_CONFIG</span></code>
</p>
</td>
<td>
<p>
When defined, it should point to the name of the compiler configuration
file to use. Defining this cuts out the compiler selection logic,
and eliminates the dependency on the header containing that logic.
For example if you are using gcc, then you could define BOOST_COMPILER_CONFIG
to <a href="../../../../boost/config/compiler/gcc.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">compiler</span><span class="special">/</span><span class="identifier">gcc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_STDLIB_CONFIG</span></code>
</p>
</td>
<td>
<p>
When defined, it should point to the name of the standard library
configuration file to use. Defining this cuts out the standard
library selection logic, and eliminates the dependency on the header
containing that logic. For example if you are using STLport, then
you could define <code class="computeroutput"><span class="identifier">BOOST_STDLIB_CONFIG</span></code>
to <a href="../../../../boost/config/stdlib/stlport.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">stdlib</span><span class="special">/</span><span class="identifier">stlport</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_PLATFORM_CONFIG</span></code>
</p>
</td>
<td>
<p>
When defined, it should point to the name of the platform configuration
file to use. Defining this cuts out the platform selection logic,
and eliminates the dependency on the header containing that logic.
For example if you are compiling on linux, then you could define
<code class="computeroutput"><span class="identifier">BOOST_PLATFORM_CONFIG</span></code>
to <a href="../../../../boost/config/platform/linux.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">platform</span><span class="special">/</span><span class="identifier">linux</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_COMPILER_CONFIG</span></code>
</p>
</td>
<td>
<p>
When defined, no compiler configuration file is selected or included,
define when the compiler is fully conformant with the standard,
or where the user header (see <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code>),
has had any options necessary added to it, for example by an autoconf
generated configure script.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_STDLIB_CONFIG</span></code>
</p>
</td>
<td>
<p>
When defined, no standard library configuration file is selected
or included, define when the standard library is fully conformant
with the standard, or where the user header (see <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code>), has had any
options necessary added to it, for example by an autoconf generated
configure script.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_PLATFORM_CONFIG</span></code>
</p>
</td>
<td>
<p>
When defined, no platform configuration file is selected or included,
define when the platform is fully conformant with the standard
(and has no useful extra features), or where the user header (see
<code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code>),
has had any options necessary added to it, for example by an autoconf
generated configure script.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NO_CONFIG</span></code>
</p>
</td>
<td>
<p>
Equivalent to defining all of <code class="computeroutput"><span class="identifier">BOOST_NO_COMPILER_CONFIG</span></code>,
<code class="computeroutput"><span class="identifier">BOOST_NO_STDLIB_CONFIG</span></code>
and <code class="computeroutput"><span class="identifier">BOOST_NO_PLATFORM_CONFIG</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_STRICT_CONFIG</span></code>
</p>
</td>
<td>
<p>
The normal behavior for compiler versions that are newer than the
last known version, is to assume that they have all the same defects
as the last known version. By setting this define, then compiler
versions that are newer than the last known version are assumed
to be fully conforming with the standard. This is probably most
useful for boost developers or testers, and for those who want
to use boost to test beta compiler versions.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_ASSERT_CONFIG</span></code>
</p>
</td>
<td>
<p>
When this flag is set, if the config finds anything unknown, then
it will stop with a #error rather than continue. Boost regression
testers should set this define, as should anyone who wants to quickly
check whether boost is supported on their platform.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_DISABLE_THREADS</span></code>
</p>
</td>
<td>
<p>
When defined, disables threading support, even if the compiler
in its current translation mode supports multiple threads.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_DISABLE_WIN32</span></code>
</p>
</td>
<td>
<p>
When defined, disables the use of Win32 specific API's, even when
these are available. Also has the effect of setting <code class="computeroutput"><span class="identifier">BOOST_DISABLE_THREADS</span></code> unless
<code class="computeroutput"><span class="identifier">BOOST_HAS_PTHREADS</span></code>
is set. This option may be set automatically by the config system
when it detects that the compiler is in "strict mode".
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_DISABLE_ABI_HEADERS</span></code>
</p>
</td>
<td>
<p>
Stops boost headers from including any prefix/suffix headers that
normally control things like struct packing and alignment.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_ABI_PREFIX</span></code>
</p>
</td>
<td>
<p>
A prefix header to include in place of whatever boost.config would
normally select, any replacement should set up struct packing and
alignment options as required.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_ABI_SUFFIX</span></code>
</p>
</td>
<td>
<p>
A suffix header to include in place of whatever boost.config would
normally select, any replacement should undo the effects of the
prefix header.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_ALL_DYN_LINK</span></code>
</p>
</td>
<td>
<p>
Forces all libraries that have separate source, to be linked as
dll's rather than static libraries on Microsoft Windows (this macro
is used to turn on <code class="computeroutput"><span class="identifier">__declspec</span><span class="special">(</span><span class="identifier">dllimport</span><span class="special">)</span></code> modifiers, so that the compiler
knows which symbols to look for in a dll rather than in a static
library). Note that there may be some libraries that can only be
statically linked (Boost.Test for example) and others which may
only be dynamically linked (Boost.Threads for example), in these
cases this macro has no effect.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_</span></code><span class="emphasis"><em>WHATEVER</em></span><code class="computeroutput"><span class="identifier">_DYN_LINK</span></code>
</p>
</td>
<td>
<p>
Forces library "whatever" to be linked as a dll rather
than a static library on Microsoft Windows: replace the <span class="emphasis"><em>WHATEVER</em></span>
part of the macro name with the name of the library that you want
to dynamically link to, for example use <code class="computeroutput"><span class="identifier">BOOST_DATE_TIME_DYN_LINK</span></code>
or <code class="computeroutput"><span class="identifier">BOOST_REGEX_DYN_LINK</span></code>
etc (this macro is used to turn on <code class="computeroutput"><span class="identifier">__declspec</span><span class="special">(</span><span class="identifier">dllimport</span><span class="special">)</span></code> modifiers, so that the compiler
knows which symbols to look for in a dll rather than in a static
library). Note that there may be some libraries that can only be
statically linked (Boost.Test for example) and others which may
only be dynamically linked (Boost.Threads for example), in these
cases this macro is unsupported.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_ALL_NO_LIB</span></code>
</p>
</td>
<td>
<p>
Tells the config system not to automatically select which libraries
to link against. Normally if a compiler supports #pragma lib, then
the correct library build variant will be automatically selected
and linked against, simply by the act of including one of that
library's headers. This macro turns that feature off.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_</span></code><span class="emphasis"><em>WHATEVER</em></span><code class="computeroutput"><span class="identifier">_NO_LIB</span></code>
</p>
</td>
<td>
<p>
Tells the config system not to automatically select which library
to link against for library "whatever", replace <span class="emphasis"><em>WHATEVER</em></span>
in the macro name with the name of the library; for example <code class="computeroutput"><span class="identifier">BOOST_DATE_TIME_NO_LIB</span></code> or <code class="computeroutput"><span class="identifier">BOOST_REGEX_NO_LIB</span></code>. Normally
if a compiler supports <code class="computeroutput"><span class="preprocessor">#pragma</span>
<span class="identifier">lib</span></code>, then the correct
library build variant will be automatically selected and linked
against, simply by the act of including one of that library's headers.
This macro turns that feature off.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_LIB_DIAGNOSTIC</span></code>
</p>
</td>
<td>
<p>
Causes the auto-linking code to output diagnostic messages indicating
the name of the library that is selected for linking.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_LIB_TOOLSET</span></code>
</p>
</td>
<td>
<p>
Overrides the name of the toolset part of the name of library being
linked to; note if defined this must be defined to a quoted string
literal, for example "abc".
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage" title="Advanced configuration usage">Advanced
configuration usage</a>
</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration">Example
1, creating our own frozen configuration</a></span></dt>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need">Example
2: skipping files that you don't need</a></span></dt>
<dt><span class="section"><a href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_3__using_configure_script_to_freeze_the_boost_configuration">Example
3: using configure script to freeze the boost configuration</a></span></dt>
</dl></div>
<p>
By setting various macros on the compiler command line or by editing <a href="../../../../boost/config/user.hpp" target="_top">&lt;boost/config/user.hpp&gt;</a>,
the boost configuration setup can be optimised in a variety of ways.
</p>
<p>
Boost's configuration is structured so that the user-configuration is included
first (defaulting to <a href="../../../../boost/config/user.hpp" target="_top">&lt;boost/config/user.hpp&gt;</a>
if <code class="computeroutput"><span class="identifier">BOOST_USER_CONFIG</span></code> is not
defined). This sets up any user-defined policies, and gives the user-configuration
a chance to influence what happens next.
</p>
<p>
Next the compiler, standard library, and platform configuration files are
included. These are included via macros (<code class="computeroutput"><span class="identifier">BOOST_COMPILER_CONFIG</span></code>
etc, <a class="link" href="index.html#config_user_settable">see user settable macros</a>),
and if the corresponding macro is undefined then a separate header that detects
which compiler/standard library/platform is in use is included in order to
set these. The config can be told to ignore these headers altogether if the
corresponding <code class="computeroutput"><span class="identifier">BOOST_NO_XXX</span></code>
macro is set (for example <code class="computeroutput"><span class="identifier">BOOST_NO_COMPILER_CONFIG</span></code>
to disable including any compiler configuration file - <a class="link" href="index.html#config_user_settable">see
user settable macros</a>).
</p>
<p>
Finally the boost configuration header, includes <a href="../../../../boost/config/user.hpp" target="_top">&lt;boost/config/suffix.hpp&gt;</a>;
this header contains any boiler plate configuration code - for example where
one boost macro being set implies that another must be set also.
</p>
<p>
The following usage examples represent just a few of the possibilities:
</p>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_1__creating_our_own_frozen_configuration" title="Example 1, creating our own frozen configuration">Example
1, creating our own frozen configuration</a>
</h4></div></div></div>
<p>
Lets suppose that we're building boost with Visual C++ 6, and STLport 4.0.
Lets suppose also that we don't intend to update our compiler or standard
library any time soon. In order to avoid breaking dependencies when we
update boost, we may want to "freeze" our configuration headers,
so that we only have to rebuild our project if the boost code itself has
changed, and not because the boost config has been updated for more recent
versions of Visual C++ or STLport. We'll start by realising that the configuration
files in use are: <a href="../../../../boost/config/compiler/visualc.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">compiler</span><span class="special">/</span><span class="identifier">visualc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a> for the compiler, <a href="../../../../boost/config/stdlib/stlport.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">stdlib</span><span class="special">/</span><span class="identifier">stlport</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a> for the standard library, and
<a href="../../../../boost/config/platform/win32.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">platform</span><span class="special">/</span><span class="identifier">win32</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a> for the platform. Next we'll
create our own private configuration directory: <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span><span class="identifier">mysetup</span><span class="special">/</span></code>, and copy the configuration files into
there. Finally, open up <a href="../../../../boost/config/user.hpp" target="_top">&lt;boost/config/user.hpp&gt;</a>
and edit the following defines:
</p>
<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_COMPILER_CONFIG</span> <span class="string">"boost/config/mysetup/visualc.hpp"</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_STDLIB_CONFIG</span> <span class="string">"boost/config/mysetup/stlport.hpp"</span>
<span class="preprocessor">#define</span> <span class="identifier">BOOST_USER_CONFIG</span> <span class="string">"boost/config/mysetup/win32.hpp"</span>
</pre>
<p>
Now when you use boost, its configuration header will go straight to our
"frozen" versions, and ignore the default versions, you will
now be insulated from any configuration changes when you update boost.
This technique is also useful if you want to modify some of the boost configuration
files; for example if you are working with a beta compiler release not
yet supported by boost.
</p>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_2__skipping_files_that_you_don_t_need" title="Example 2: skipping files that you don't need">Example
2: skipping files that you don't need</a>
</h4></div></div></div>
<p>
Lets suppose that you're using boost with a compiler that is fully conformant
with the standard; you're not interested in the fact that older versions
of your compiler may have had bugs, because you know that your current
version does not need any configuration macros setting. In a case like
this, you can define <code class="computeroutput"><span class="identifier">BOOST_NO_COMPILER_CONFIG</span></code>
either on the command line, or in <a href="../../../../boost/config/user.hpp" target="_top">&lt;boost/config/user.hpp&gt;</a>,
and miss out the compiler configuration header altogether (actually you
miss out two headers, one which works out what the compiler is, and one
that configures boost for it). This has two consequences: the first is
that less code has to be c ompiled, and the second that you have removed
a dependency on two boost headers.
</p>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_3__using_configure_script_to_freeze_the_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.advanced_configuration_usage.example_3__using_configure_script_to_freeze_the_boost_configuration" title="Example 3: using configure script to freeze the boost configuration">Example
3: using configure script to freeze the boost configuration</a>
</h4></div></div></div>
<p>
If you are working on a unix-like platform then you can use the configure
script to generate a "frozen" configuration based on your current
compiler setup - <a class="link" href="index.html#config_config_script">see using the configure
script for more details</a>.
</p>
</div>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration"></a><a class="link" href="index.html#boost_config.configuring_boost_for_your_platform.testing_the_boost_configuration" title="Testing the boost configuration">Testing
the boost configuration</a>
</h3></div></div></div>
<p>
The boost configuration library provides a full set of regression test programs
under the <span class="emphasis"><em>&lt;boost-root&gt;</em></span><code class="computeroutput"><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">/</span></code>
<code class="computeroutput"><span class="identifier">test</span><span class="special">/</span></code>
sub-directory:
</p>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
File
</p>
</th>
<th>
<p>
Description
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">config_info</span><span class="special">.</span><span class="identifier">cpp</span></code>
</p>
</td>
<td>
<p>
Prints out a detailed description of your compiler/standard library/platform
setup, plus your current boost configuration. The information provided
by this program useful in setting up the boost configuration files.
If you report that boost is incorrectly configured for your compiler/library/platform
then please include the output from this program when reporting
the changes required.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">config_test</span><span class="special">.</span><span class="identifier">cpp</span></code>
</p>
</td>
<td>
<p>
A monolithic test program that includes most of the individual
test cases. This provides a quick check to see if boost is correctly
configured for your compiler/library/platform.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">limits_test</span><span class="special">.</span><span class="identifier">cpp</span></code>
</p>
</td>
<td>
<p>
Tests your standard library's <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">numeric_limits</span></code>
implementation (or its boost provided replacement if <code class="computeroutput"><span class="identifier">BOOST_NO_LIMITS</span></code> is defined).
This test file fails with most versions of numeric_limits, mainly
due to the way that some compilers treat NAN's and infinity.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">no_</span><span class="special">*</span><span class="identifier">pass</span><span class="special">.</span><span class="identifier">cpp</span></code>
</p>
</td>
<td>
<p>
Individual compiler defect test files. Each of these should compile,
if one does not then the corresponding <code class="computeroutput"><span class="identifier">BOOST_NO_XXX</span></code>
macro needs to be defined - see each test file for specific details.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">no_</span><span class="special">*</span><span class="identifier">fail</span><span class="special">.</span><span class="identifier">cpp</span></code>
</p>
</td>
<td>
<p>
Individual compiler defect test files. Each of these should not
compile, if one does then the corresponding <code class="computeroutput"><span class="identifier">BOOST_NO_XXX</span></code>
macro is defined when it need not be - see each test file for specific
details.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">has_</span><span class="special">*</span><span class="identifier">pass</span><span class="special">.</span><span class="identifier">cpp</span></code>
</p>
</td>
<td>
<p>
Individual feature test files. If one of these does not compile
then the corresponding <code class="computeroutput"><span class="identifier">BOOST_HAS_XXX</span></code>
macro is defined when it should not be - see each test file for
specific details.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">has_</span><span class="special">*</span><span class="identifier">fail</span><span class="special">.</span><span class="identifier">cpp</span></code>
</p>
</td>
<td>
<p>
Individual feature test files. If one of these does compile then
the corresponding <code class="computeroutput"><span class="identifier">BOOST_HAS_XXX</span></code>
macro can be safely defined - see each test file for specific details.
</p>
</td>
</tr>
</tbody>
</table></div>
<p>
Although you can run the configuration regression tests as individual test
files, there are rather a lot of them, so there are a couple of shortcuts
to help you out:
</p>
<p>
If you have built the <a href="../../../../tools/regression/doc/index.html" target="_top">boost
regression test driver</a>, then you can use this to produce a nice html
formatted report of the results using the supplied test file.
</p>
<p>
Alternatively you can run the configure script like this:
</p>
<div class="blockquote"><blockquote class="blockquote"><p>
<code class="computeroutput"><span class="special">./</span><span class="identifier">configure</span>
<span class="special">--</span><span class="identifier">enable</span><span class="special">-</span><span class="identifier">test</span></code>
</p></blockquote></div>
<p>
in which case the script will test the current configuration rather than
creating a new one from scratch.
</p>
<p>
If you are reporting the results of these tests for a new platform/library/compiler
then please include a log of the full compiler output, the output from <code class="computeroutput"><span class="identifier">config_info</span><span class="special">.</span><span class="identifier">cpp</span></code>, and the pass/fail test results.
</p>
</div>
</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: September 26, 2010 at 09:24:20 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
<div class="spirit-nav"><a accesskey="n" href="boost_config/boost_macro_reference.html"><img src="../../../../doc/src/images/next.png" alt="Next"></a></div>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,80 +0,0 @@
[/
Boost.Config
Copyright (c) 2001 Beman Dawes
Copyright (c) 2001 Vesa Karvonen
Copyright (c) 2001 John Maddock
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)
]
[section Rationale]
The problem with many traditional "textbook" implementations of configuration
headers (where all the configuration options are in a single "monolithic"
header) is that they violate certain fundamental software engineering
principles which would have the effect of making boost more fragile, more
difficult to maintain and more difficult to use safely. You can find a
description of the principles from the __PRINCIPLES_AND_PATTERNS_ARTICLE__.
[section The problem]
Consider a situation in which you are concurrently developing on multiple
platforms. Then consider adding a new platform or changing the platform
definitions of an existing platform. What happens? Everything, and this does
literally mean everything, recompiles. Isn't it quite absurd that adding a
new platform, which has absolutely nothing to do with previously existing
platforms, means that all code on all existing platforms needs to be
recompiled?
Effectively, there is an imposed physical dependency between platforms that
have nothing to do with each other. Essentially, the traditional solution
employed by configuration headers does not conform to the Open-Closed
Principle:
[: [*"A module should be open for extension but closed for modification."]]
Extending a traditional configuration header implies modifying existing code.
Furthermore, consider the complexity and fragility of the platform detection
code. What if a simple change breaks the detection on some minor platform?
What if someone accidentally or on purpose (as a workaround for some other
problem) defines some platform dependent macros that are used by the
detection code? A traditional configuration header is one of the most
volatile headers of the entire library, and more stable elements of
Boost would depend on it. This violates the Stable Dependencies Principle:
[: [*"Depend in the direction of stability."]]
After even a minor change to a traditional configuration header on one minor
platform, almost everything on every platform should be tested if we follow
sound software engineering practice.
Another important issue is that it is not always possible to submit changes
to `<boost/config.hpp>`. Some boost users are currently working on platforms
using tools and libraries that are under strict Non-Disclosure Agreements.
In this situation it is impossible to submit changes to a traditional
monolithic configuration header, instead some method by which the user
can insert their own configuration code must be provided.
[endsect]
[section The solution]
The approach taken by boost's configuration headers is to separate
configuration into three orthogonal parts: the compiler, the standard
library and the platform. Each compiler/standard library/platform gets
its own mini-configuration header, so that changes to one compiler's
configuration (for example) does not affect other compilers. In addition
there are measures that can be taken both to omit the compiler/standard
library/platform detection code (so that adding support to a new platform
does not break dependencies), or to freeze the configuration completely;
providing almost complete protection against dependency changes.
[endsect]
[endsect]

View File

@@ -21,7 +21,7 @@
// 8026 - functions taking class by value arguments are not expanded inline
#pragma nopushoptwarn
# pragma option push -a8 -Vx- -Ve- -b- -pc -Vmv -VC- -Vl- -w-8027 -w-8026
# pragma option push -Vx -Ve -a8 -b -pc -Vmv -VC- -Vl- -w-8027 -w-8026

View File

@@ -3,20 +3,6 @@
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
//
// Boost binaries are built with the compiler's default ABI settings,
// if the user changes their default alignment in the VS IDE then their
// code will no longer be binary compatible with the bjam built binaries
// unless this header is included to force Boost code into a consistent ABI.
//
// Note that inclusion of this header is only necessary for libraries with
// separate source, header only libraries DO NOT need this as long as all
// translation units are built with the same options.
//
#if defined(_M_X64)
# pragma pack(push,16)
#else
# pragma pack(push,8)
#endif
#pragma pack(push,8)

View File

@@ -1,6 +1,6 @@
// abi_prefix header -------------------------------------------------------//
// (c) Copyright John Maddock 2003
// © Copyright John Maddock 2003
// Use, modification and distribution are subject to the Boost Software License,
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -18,8 +18,3 @@
#ifdef BOOST_HAS_ABI_HEADERS
# include BOOST_ABI_PREFIX
#endif
#if defined( __BORLANDC__ )
#pragma nopushoptwarn
#endif

View File

@@ -1,6 +1,6 @@
// abi_sufffix header -------------------------------------------------------//
// (c) Copyright John Maddock 2003
// © Copyright John Maddock 2003
// Use, modification and distribution are subject to the Boost Software License,
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -10,7 +10,7 @@
// <boost/config/abi_prefix.hpp>.
#ifndef BOOST_CONFIG_ABI_PREFIX_HPP
# error Header boost/config/abi_suffix.hpp must only be used after boost/config/abi_prefix.hpp
# error Header boost/config/abi_prefix.hpp must only be used after boost/config/abi_prefix.hpp
#else
# undef BOOST_CONFIG_ABI_PREFIX_HPP
#endif
@@ -20,8 +20,4 @@
# include BOOST_ABI_SUFFIX
#endif
#if defined( __BORLANDC__ )
#pragma nopushoptwarn
#endif

View File

@@ -25,9 +25,6 @@ BOOST_LIB_DIAGNOSTIC: Optional: when set the header will print out the name
of the library selected (useful for debugging).
BOOST_AUTO_LINK_NOMANGLE: Specifies that we should link to BOOST_LIB_NAME.lib,
rather than a mangled-name version.
BOOST_AUTO_LINK_TAGGED: Specifies that we link to libraries built with the --layout=tagged option.
This is essentially the same as the default name-mangled version, but without
the compiler name and version, or the Boost version. Just the build options.
These macros will be undef'ed at the end of the header, further this header
has no include guards - so be sure to include it only once from your library!
@@ -63,8 +60,6 @@ BOOST_LIB_RT_OPT: A suffix that indicates the runtime library used,
a hiphen:
s static runtime (dynamic if not present).
g debug/diagnostic runtime (release if not present).
y Python debug/diagnostic runtime (release if not present).
d debug build (release if not present).
g debug/diagnostic runtime (release if not present).
p STLPort Build.
@@ -114,16 +109,10 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
// select toolset if not defined already:
//
#ifndef BOOST_LIB_TOOLSET
// Note: no compilers before 1200 are supported
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
#if defined(BOOST_MSVC) && (BOOST_MSVC == 1200)
# ifdef UNDER_CE
// vc6:
# define BOOST_LIB_TOOLSET "evc4"
# else
// vc6:
# define BOOST_LIB_TOOLSET "vc6"
# endif
// vc6:
# define BOOST_LIB_TOOLSET "vc6"
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1300)
@@ -135,21 +124,11 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
// vc71:
# define BOOST_LIB_TOOLSET "vc71"
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1400)
#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1400)
// vc80:
# define BOOST_LIB_TOOLSET "vc80"
#elif defined(BOOST_MSVC) && (BOOST_MSVC == 1500)
// vc90:
# define BOOST_LIB_TOOLSET "vc90"
#elif defined(BOOST_MSVC) && (BOOST_MSVC >= 1600)
// vc10:
# define BOOST_LIB_TOOLSET "vc100"
#elif defined(__BORLANDC__)
// CBuilder 6:
@@ -188,16 +167,8 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-gydp"
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
# define BOOST_LIB_RT_OPT "-gdp"
# elif defined(_DEBUG)\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-gydp"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries"
# elif defined(_DEBUG)
# define BOOST_LIB_RT_OPT "-gdp"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
@@ -208,16 +179,8 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-gydpn"
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
# define BOOST_LIB_RT_OPT "-gdpn"
# elif defined(_DEBUG)\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-gydpn"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries"
# elif defined(_DEBUG)
# define BOOST_LIB_RT_OPT "-gdpn"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
@@ -228,9 +191,7 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# else
# if defined(_DEBUG) && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-gyd"
# elif defined(_DEBUG)
# if defined(_DEBUG)
# define BOOST_LIB_RT_OPT "-gd"
# else
# define BOOST_LIB_RT_OPT
@@ -242,16 +203,8 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS))
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-sgydp"
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
# define BOOST_LIB_RT_OPT "-sgdp"
# elif defined(_DEBUG)\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-sgydp"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries"
# elif defined(_DEBUG)
# define BOOST_LIB_RT_OPT "-sgdp"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
@@ -262,16 +215,8 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-sgydpn"
# elif defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
# if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG))
# define BOOST_LIB_RT_OPT "-sgdpn"
# elif defined(_DEBUG)\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-sgydpn"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
# error "Build options aren't compatible with pre-built libraries"
# elif defined(_DEBUG)
# define BOOST_LIB_RT_OPT "-sgdpn"
# pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1")
@@ -282,10 +227,7 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# else
# if defined(_DEBUG)\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-sgyd"
# elif defined(_DEBUG)
# if defined(_DEBUG)
# define BOOST_LIB_RT_OPT "-sgd"
# else
# define BOOST_LIB_RT_OPT "-s"
@@ -312,26 +254,16 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# ifdef _RTLDLL
# if defined(BOOST_BORLAND_DEBUG)\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-yd"
# elif defined(BOOST_BORLAND_DEBUG)
# ifdef BOOST_BORLAND_DEBUG
# define BOOST_LIB_RT_OPT "-d"
# elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT -y
# else
# define BOOST_LIB_RT_OPT
# endif
# else
# if defined(BOOST_BORLAND_DEBUG)\
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-syd"
# elif defined(BOOST_BORLAND_DEBUG)
# ifdef BOOST_BORLAND_DEBUG
# define BOOST_LIB_RT_OPT "-sd"
# elif defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
# define BOOST_LIB_RT_OPT "-sy"
# else
# define BOOST_LIB_RT_OPT "-s"
# endif
@@ -361,21 +293,16 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
&& defined(BOOST_LIB_RT_OPT) \
&& defined(BOOST_LIB_VERSION)
#ifdef BOOST_AUTO_LINK_TAGGED
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
# ifdef BOOST_LIB_DIAGNOSTIC
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
# endif
#elif defined(BOOST_AUTO_LINK_NOMANGLE)
# pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
# ifdef BOOST_LIB_DIAGNOSTIC
# pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
# endif
#else
#ifndef BOOST_AUTO_LINK_NOMANGLE
# pragma comment(lib, BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
# ifdef BOOST_LIB_DIAGNOSTIC
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) "-" BOOST_LIB_TOOLSET BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT "-" BOOST_LIB_VERSION ".lib")
# endif
#else
# pragma comment(lib, BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
# ifdef BOOST_LIB_DIAGNOSTIC
# pragma message ("Linking to lib file: " BOOST_STRINGIZE(BOOST_LIB_NAME) ".lib")
# endif
#endif
#else
@@ -394,11 +321,9 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
#if defined(BOOST_LIB_NAME)
# undef BOOST_LIB_NAME
#endif
// Don't undef this one: it can be set by the user and should be the
// same for all libraries:
//#if defined(BOOST_LIB_TOOLSET)
//# undef BOOST_LIB_TOOLSET
//#endif
#if defined(BOOST_LIB_TOOLSET)
# undef BOOST_LIB_TOOLSET
#endif
#if defined(BOOST_LIB_THREAD_OPT)
# undef BOOST_LIB_THREAD_OPT
#endif
@@ -418,3 +343,12 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
# undef BOOST_AUTO_LINK_NOMANGLE
#endif

View File

@@ -9,35 +9,6 @@
// Borland C++ compiler setup:
//
// versions check:
// we don't support Borland prior to version 5.4:
#if __BORLANDC__ < 0x540
# error "Compiler not supported or configured - please reconfigure"
#endif
// last known compiler version:
#if (__BORLANDC__ > 0x613)
//# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
//# else
//# pragma message( "Unknown compiler version - please run the configure tests and report the results")
//# endif
#elif (__BORLANDC__ == 0x600)
# error "CBuilderX preview compiler is no longer supported"
#endif
//
// Support macros to help with standard library detection
#if (__BORLANDC__ < 0x560) || defined(_USE_OLD_RW_STL)
# define BOOST_BCB_WITH_ROGUE_WAVE
#elif __BORLANDC__ < 0x570
# define BOOST_BCB_WITH_STLPORT
#else
# define BOOST_BCB_WITH_DINKUMWARE
#endif
//
// Version 5.0 and below:
# if __BORLANDC__ <= 0x0550
// Borland C++Builder 4 and 5:
@@ -46,14 +17,13 @@
// Borland C++Builder 5, command-line compiler 5.5:
# define BOOST_NO_OPERATORS_IN_NAMESPACE
# endif
// Variadic macros do not exist for C++ Builder versions 5 and below
#define BOOST_NO_VARIADIC_MACROS
# endif
// Version 5.51 and below:
#if (__BORLANDC__ <= 0x551)
# define BOOST_NO_CV_SPECIALIZATIONS
# define BOOST_NO_CV_VOID_SPECIALIZATIONS
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
# define BOOST_NO_DEDUCED_TYPENAME
// workaround for missing WCHAR_MAX/WCHAR_MIN:
#include <climits>
@@ -66,37 +36,35 @@
#endif
#endif
// Borland C++ Builder 6 and below:
#if (__BORLANDC__ <= 0x564)
// Version 7.0 (Kylix) and below:
#if (__BORLANDC__ <= 0x570)
# define BOOST_NO_SFINAE
# define BOOST_NO_INTEGRAL_INT64_T
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
# define BOOST_NO_PRIVATE_IN_AGGREGATE
# define BOOST_NO_USING_TEMPLATE
# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
# define BOOST_NO_TEMPLATE_TEMPLATES
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
// we shouldn't really need this - but too many things choke
// without it, this needs more investigation:
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
# define BOOST_NO_IS_ABSTRACT
# ifdef NDEBUG
// fix broken <cstring> so that Boost.test works:
# include <cstring>
# undef strcmp
# endif
// fix broken errno declaration:
# include <errno.h>
# ifndef errno
# define errno errno
# endif
#endif
//
// new bug in 5.61:
#if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580)
#if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x570)
// this seems to be needed by the command line compiler, but not the IDE:
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
#endif
// Borland C++ Builder 2006 Update 2 and below:
#if (__BORLANDC__ <= 0x582)
# define BOOST_NO_SFINAE
# define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
# define BOOST_NO_TEMPLATE_TEMPLATES
# define BOOST_NO_PRIVATE_IN_AGGREGATE
# ifdef _WIN32
# define BOOST_NO_SWPRINTF
# elif defined(linux) || defined(__linux__) || defined(__linux)
@@ -108,93 +76,11 @@
# endif
#endif
#if (__BORLANDC__ <= 0x613) // Beman has asked Alisdair for more info
// we shouldn't really need this - but too many things choke
// without it, this needs more investigation:
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
# define BOOST_NO_IS_ABSTRACT
# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
# define BOOST_NO_USING_TEMPLATE
# define BOOST_SP_NO_SP_CONVERTIBLE
// Temporary workaround
#define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
#endif
// Borland C++ Builder 2008 and below:
# define BOOST_NO_INTEGRAL_INT64_T
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
# define BOOST_NO_NESTED_FRIENDSHIP
# define BOOST_NO_TYPENAME_WITH_CTOR
#if (__BORLANDC__ < 0x600)
# define BOOST_ILLEGAL_CV_REFERENCES
#endif
//
// Positive Feature detection
//
// Borland C++ Builder 2008 and below:
#if (__BORLANDC__ >= 0x599)
# pragma defineonoption BOOST_CODEGEAR_0X_SUPPORT -Ax
#endif
//
// C++0x Macros:
//
#if !defined( BOOST_CODEGEAR_0X_SUPPORT ) || (__BORLANDC__ < 0x610)
# define BOOST_NO_CHAR16_T
# define BOOST_NO_CHAR32_T
# define BOOST_NO_DECLTYPE
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_EXTERN_TEMPLATE
# define BOOST_NO_RVALUE_REFERENCES
# define BOOST_NO_SCOPED_ENUMS
# define BOOST_NO_STATIC_ASSERT
#else
# define BOOST_HAS_ALIGNOF
# define BOOST_HAS_CHAR16_T
# define BOOST_HAS_CHAR32_T
# define BOOST_HAS_DECLTYPE
# define BOOST_HAS_EXPLICIT_CONVERSION_OPS
# define BOOST_HAS_REF_QUALIFIER
# define BOOST_HAS_RVALUE_REFS
# define BOOST_HAS_STATIC_ASSERT
#endif
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS // UTF-8 still not supported
#define BOOST_NO_VARIADIC_TEMPLATES
#if __BORLANDC__ >= 0x590
# define BOOST_HAS_TR1_HASH
# define BOOST_HAS_MACRO_USE_FACET
#endif
//
// Post 0x561 we have long long and stdint.h:
#if __BORLANDC__ >= 0x561
# ifndef __NO_LONG_LONG
# define BOOST_HAS_LONG_LONG
# else
# define BOOST_NO_LONG_LONG
# endif
// On non-Win32 platforms let the platform config figure this out:
# ifdef _WIN32
@@ -205,7 +91,7 @@
// Borland C++Builder 6 defaults to using STLPort. If _USE_OLD_RW_STL is
// defined, then we have 0x560 or greater with the Rogue Wave implementation
// which presumably has the std::DBL_MAX bug.
#if defined( BOOST_BCB_WITH_ROGUE_WAVE )
#if ((__BORLANDC__ >= 0x550) && (__BORLANDC__ < 0x560)) || defined(_USE_OLD_RW_STL)
// <climits> is partly broken, some macros define symbols that are really in
// namespace std, so you end up having to use illegal constructs like
// std::DBL_MAX, as a fix we'll just include float.h and have done with:
@@ -220,7 +106,7 @@
//
// check for exception handling support:
//
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS
#endif
//
@@ -232,14 +118,13 @@
//
// all versions support __declspec:
//
#if defined(__STRICT_ANSI__)
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
# define BOOST_SYMBOL_EXPORT
#ifndef __STRICT_ANSI__
# define BOOST_HAS_DECLSPEC
#endif
//
// ABI fixing headers:
//
#if __BORLANDC__ != 0x600 // not implemented for version 6 compiler yet
#if __BORLANDC__ < 0x600 // not implemented for version 6 compiler yet
#ifndef BOOST_ABI_PREFIX
# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
#endif
@@ -257,21 +142,34 @@
#endif
//
// MSVC compatibility mode does some nasty things:
// TODO: look up if this doesn't apply to the whole 12xx range
//
#if defined(_MSC_VER) && (_MSC_VER <= 1200)
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# define BOOST_NO_VOID_RETURNS
#endif
// Borland did not implement value-initialization completely, as I reported
// in 2007, Borland Report 51854, "Value-initialization: POD struct should be
// zero-initialized", http://qc.embarcadero.com/wc/qcmain.aspx?d=51854
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
// (Niels Dekker, LKEB, April 2010)
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#define BOOST_COMPILER "Borland C++ version " BOOST_STRINGIZE(__BORLANDC__)
//
// versions check:
// we don't support Borland prior to version 5.4:
#if __BORLANDC__ < 0x540
# error "Compiler not supported or configured - please reconfigure"
#endif
//
// last known and checked version is 1536 (Builder X preview):
#if (__BORLANDC__ > 1536)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# else
# pragma message( "Unknown compiler version - please run the configure tests and report the results")
# endif
#endif

View File

@@ -1,63 +0,0 @@
// (C) Copyright Douglas Gregor 2010
//
// Use, modification and distribution are subject to 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)
// See http://www.boost.org for most recent version.
// Clang compiler setup.
#if __has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
#else
# define BOOST_NO_EXCEPTIONS
#endif
#if __has_feature(cxx_rtti)
#else
# define BOOST_NO_RTTI
#endif
#if defined(__int64)
# define BOOST_HAS_MS_INT64
#endif
#define BOOST_HAS_NRVO
// NOTE: Clang's C++0x support is not worth detecting. However, it
// supports both extern templates and "long long" even in C++98/03
// mode.
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_VARIADIC_MACROS
// HACK: Clang does support extern templates, but Boost's test for
// them is wrong.
#define BOOST_NO_EXTERN_TEMPLATE
#ifndef BOOST_COMPILER
# define BOOST_COMPILER "Clang version " __clang_version__
#endif
// Macro used to identify the Clang compiler.
#define BOOST_CLANG 1

View File

@@ -1,177 +0,0 @@
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright David Abrahams 2002 - 2003.
// (C) Copyright Aleksey Gurtovoy 2002.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org for most recent version.
// CodeGear C++ compiler setup:
#if !defined( BOOST_WITH_CODEGEAR_WARNINGS )
// these warnings occur frequently in optimized template code
# pragma warn -8004 // var assigned value, but never used
# pragma warn -8008 // condition always true/false
# pragma warn -8066 // dead code can never execute
# pragma warn -8104 // static members with ctors not threadsafe
# pragma warn -8105 // reference member in class without ctors
#endif
//
// versions check:
// last known and checked version is 0x621
#if (__CODEGEARC__ > 0x621)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# else
# pragma message( "Unknown compiler version - please run the configure tests and report the results")
# endif
#endif
// CodeGear C++ Builder 2009
#if (__CODEGEARC__ <= 0x613)
# define BOOST_NO_INTEGRAL_INT64_T
# define BOOST_NO_DEPENDENT_NESTED_DERIVATIONS
# define BOOST_NO_PRIVATE_IN_AGGREGATE
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
// we shouldn't really need this - but too many things choke
// without it, this needs more investigation:
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
# define BOOST_SP_NO_SP_CONVERTIBLE
#endif
// CodeGear C++ Builder 2010
#if (__CODEGEARC__ <= 0x621)
# define BOOST_NO_TYPENAME_WITH_CTOR // Cannot use typename keyword when making temporaries of a dependant type
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# define BOOST_NO_NESTED_FRIENDSHIP // TC1 gives nested classes access rights as any other member
# define BOOST_NO_USING_TEMPLATE
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
// Temporary hack, until specific MPL preprocessed headers are generated
# define BOOST_MPL_CFG_NO_PREPROCESSED_HEADERS
// CodeGear has not yet completely implemented value-initialization, for
// example for array types, as I reported in 2010: Embarcadero Report 83751,
// "Value-initialization: arrays should have each element value-initialized",
// http://qc.embarcadero.com/wc/qcmain.aspx?d=83751
// Last checked version: Embarcadero C++ 6.21
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
// (Niels Dekker, LKEB, April 2010)
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
# ifdef NDEBUG
// fix broken <cstring> so that Boost.test works:
# include <cstring>
# undef strcmp
# endif
// fix broken errno declaration:
# include <errno.h>
# ifndef errno
# define errno errno
# endif
#endif
//
// C++0x macros:
//
#if (__CODEGEARC__ <= 0x620)
#define BOOST_NO_STATIC_ASSERT
#else
#define BOOST_HAS_STATIC_ASSERT
#endif
#define BOOST_HAS_CHAR16_T
#define BOOST_HAS_CHAR32_T
#define BOOST_HAS_LONG_LONG
// #define BOOST_HAS_ALIGNOF
#define BOOST_HAS_DECLTYPE
#define BOOST_HAS_EXPLICIT_CONVERSION_OPS
// #define BOOST_HAS_RVALUE_REFS
#define BOOST_HAS_SCOPED_ENUM
// #define BOOST_HAS_STATIC_ASSERT
#define BOOST_HAS_STD_TYPE_TRAITS
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXTERN_TEMPLATE
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
//
// TR1 macros:
//
#define BOOST_HAS_TR1_HASH
#define BOOST_HAS_TR1_TYPE_TRAITS
#define BOOST_HAS_TR1_UNORDERED_MAP
#define BOOST_HAS_TR1_UNORDERED_SET
#define BOOST_HAS_MACRO_USE_FACET
#define BOOST_NO_INITIALIZER_LISTS
// On non-Win32 platforms let the platform config figure this out:
#ifdef _WIN32
# define BOOST_HAS_STDINT_H
#endif
//
// __int64:
//
#if !defined(__STRICT_ANSI__)
# define BOOST_HAS_MS_INT64
#endif
//
// check for exception handling support:
//
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS
#endif
//
// all versions have a <dirent.h>:
//
#if !defined(__STRICT_ANSI__)
# define BOOST_HAS_DIRENT_H
#endif
//
// all versions support __declspec:
//
#if defined(__STRICT_ANSI__)
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
# define BOOST_SYMBOL_EXPORT
#endif
//
// ABI fixing headers:
//
#ifndef BOOST_ABI_PREFIX
# define BOOST_ABI_PREFIX "boost/config/abi/borland_prefix.hpp"
#endif
#ifndef BOOST_ABI_SUFFIX
# define BOOST_ABI_SUFFIX "boost/config/abi/borland_suffix.hpp"
#endif
//
// Disable Win32 support in ANSI mode:
//
# pragma defineonoption BOOST_DISABLE_WIN32 -A
//
// MSVC compatibility mode does some nasty things:
// TODO: look up if this doesn't apply to the whole 12xx range
//
#if defined(_MSC_VER) && (_MSC_VER <= 1200)
# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
# define BOOST_NO_VOID_RETURNS
#endif
#define BOOST_COMPILER "CodeGear C++ version " BOOST_STRINGIZE(__CODEGEARC__)

View File

@@ -24,8 +24,8 @@
# endif
// Void returns don't work when emulating VC 6 (Peter Dimov)
// TODO: look up if this doesn't apply to the whole 12xx range
# if defined(_MSC_VER) && (_MSC_VER < 1300)
# if defined(_MSC_VER) && (_MSC_VER == 1200)
# define BOOST_NO_VOID_RETURNS
# endif

View File

@@ -44,54 +44,19 @@
#endif
// See also kai.hpp which checks a Kai-specific symbol for EH
# if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
# if !defined(__KCC) && !defined(__EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS
# endif
# if !defined(__NO_LONG_LONG)
# define BOOST_HAS_LONG_LONG
# else
# define BOOST_NO_LONG_LONG
# endif
//
// C++0x features
//
// See above for BOOST_NO_LONG_LONG
//
#if (__EDG_VERSION__ < 310)
# define BOOST_NO_EXTERN_TEMPLATE
#endif
#if (__EDG_VERSION__ <= 310) || !defined(BOOST_STRICT_CONFIG)
// No support for initializer lists
# define BOOST_NO_INITIALIZER_LISTS
#endif
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_VARIADIC_MACROS
#ifdef c_plusplus
// EDG has "long long" in non-strict mode
// However, some libraries have insufficient "long long" support
// #define BOOST_HAS_LONG_LONG
#endif

View File

@@ -5,9 +5,9 @@
// See http://www.boost.org for most recent version.
// Tru64 C++ compiler setup (now HP):
// Dec Alpha True64 C++ compiler setup:
#define BOOST_COMPILER "HP Tru64 C++ " BOOST_STRINGIZE(__DECCXX_VER)
#define BOOST_COMPILER "Dec Alpha True64 " BOOST_STRINGIZE(__DECCXX_VER)
#include "boost/config/compiler/common_edg.hpp"

View File

@@ -36,60 +36,13 @@
#define BOOST_HAS_WINTHREADS
#endif
#if (__DMC__ >= 0x847)
#define BOOST_HAS_EXPM1
#define BOOST_HAS_LOG1P
#endif
//
// Is this really the best way to detect whether the std lib is in namespace std?
//
#include <cstddef>
#if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD)
# define BOOST_NO_STDC_NAMESPACE
#endif
// check for exception handling support:
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
#ifndef _CPPUNWIND
# define BOOST_NO_EXCEPTIONS
#endif
//
// C++0x features
//
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_EXTERN_TEMPLATE
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
#if (__DMC__ < 0x812)
#define BOOST_NO_VARIADIC_MACROS
#endif
#if __DMC__ < 0x800
#error "Compiler not supported or configured - please reconfigure"
#endif
//
// last known and checked version is ...:
#if (__DMC__ > 0x848)
#if (__DMC__ < 0x840)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# endif

View File

@@ -42,14 +42,7 @@
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
# define BOOST_NO_IS_ABSTRACT
# define BOOST_NO_EXTERN_TEMPLATE
// Variadic macros do not exist for gcc versions before 3.0
# define BOOST_NO_VARIADIC_MACROS
#elif __GNUC__ == 3
# if defined (__PATHSCALE__)
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
# define BOOST_NO_IS_ABSTRACT
# endif
//
// gcc-3.x problems:
//
@@ -61,31 +54,9 @@
# if __GNUC_MINOR__ < 4
# define BOOST_NO_IS_ABSTRACT
# endif
# define BOOST_NO_EXTERN_TEMPLATE
#endif
#if __GNUC__ < 4
//
// All problems to gcc-3.x and earlier here:
//
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
# ifdef __OPEN64__
# define BOOST_NO_IS_ABSTRACT
# endif
#endif
#if __GNUC__ < 4 || ( __GNUC__ == 4 && __GNUC_MINOR__ < 4 )
// Previous versions of GCC did not completely implement value-initialization:
// GCC Bug 30111, "Value-initialization of POD base class doesn't initialize
// members", reported by Jonathan Wakely in 2006,
// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30111 (fixed for GCC 4.4)
// GCC Bug 33916, "Default constructor fails to initialize array members",
// reported by Michael Elizabeth Chastain in 2007,
// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33916 (fixed for GCC 4.2.4)
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#endif
#if !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
#ifndef __EXCEPTIONS
# define BOOST_NO_EXCEPTIONS
#endif
@@ -111,118 +82,7 @@
#define BOOST_HAS_NRVO
#endif
//
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
//
#if __GNUC__ >= 4
# if (defined(_WIN32) || defined(__WIN32__) || defined(WIN32)) && !defined(__CYGWIN__)
// All Win32 development environments, including 64-bit Windows and MinGW, define
// _WIN32 or one of its variant spellings. Note that Cygwin is a POSIX environment,
// so does not define _WIN32 or its variants.
# define BOOST_HAS_DECLSPEC
# define BOOST_SYMBOL_EXPORT __attribute__((dllexport))
# define BOOST_SYMBOL_IMPORT __attribute__((dllimport))
# else
# define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
# define BOOST_SYMBOL_IMPORT
# endif
# define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
#else
// config/platform/win32.hpp will define BOOST_SYMBOL_EXPORT, etc., unless already defined
# define BOOST_SYMBOL_EXPORT
#endif
//
// RTTI and typeinfo detection is possible post gcc-4.3:
//
#if __GNUC__ * 100 + __GNUC_MINOR__ >= 403
# ifndef __GXX_RTTI
# ifndef BOOST_NO_TYPEID
# define BOOST_NO_TYPEID
# endif
# ifndef BOOST_NO_RTTI
# define BOOST_NO_RTTI
# endif
# endif
#endif
// C++0x features not implemented in any GCC version
//
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_NULLPTR
#define BOOST_NO_TEMPLATE_ALIASES
// C++0x features in 4.3.n and later
//
#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ > 2)) && defined(__GXX_EXPERIMENTAL_CXX0X__)
// C++0x features are only enabled when -std=c++0x or -std=gnu++0x are
// passed on the command line, which in turn defines
// __GXX_EXPERIMENTAL_CXX0X__.
# define BOOST_HAS_DECLTYPE
# define BOOST_HAS_RVALUE_REFS
# define BOOST_HAS_STATIC_ASSERT
# define BOOST_HAS_VARIADIC_TMPL
#else
# define BOOST_NO_DECLTYPE
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
# define BOOST_NO_RVALUE_REFERENCES
# define BOOST_NO_STATIC_ASSERT
// Variadic templates compiler:
// http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html
# ifdef __VARIADIC_TEMPLATES
# define BOOST_HAS_VARIADIC_TMPL
# else
# define BOOST_NO_VARIADIC_TEMPLATES
# endif
#endif
// C++0x features in 4.4.n and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_NO_AUTO_DECLARATIONS
# define BOOST_NO_AUTO_MULTIDECLARATIONS
# define BOOST_NO_CHAR16_T
# define BOOST_NO_CHAR32_T
# define BOOST_NO_DEFAULTED_FUNCTIONS
# define BOOST_NO_DELETED_FUNCTIONS
# define BOOST_NO_INITIALIZER_LISTS
# define BOOST_NO_SCOPED_ENUMS
#endif
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4)
# define BOOST_NO_SFINAE_EXPR
#endif
// C++0x features in 4.4.1 and later
//
#if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40401) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_SCOPED_ENUMS before 4.4.1
// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064
# define BOOST_NO_SCOPED_ENUMS
#endif
// C++0x features in 4.5.n and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_LAMBDAS
# define BOOST_NO_RAW_LITERALS
# define BOOST_NO_UNICODE_LITERALS
#endif
// ConceptGCC compiler:
// http://www.generic-programming.org/software/ConceptGCC/
#ifdef __GXX_CONCEPTS__
# define BOOST_HAS_CONCEPTS
# define BOOST_COMPILER "ConceptGCC version " __VERSION__
#else
# define BOOST_NO_CONCEPTS
#endif
#ifndef BOOST_COMPILER
# define BOOST_COMPILER "GNU C++ version " __VERSION__
#endif
#define BOOST_COMPILER "GNU C++ version " __VERSION__
//
// versions check:
@@ -231,8 +91,8 @@
# error "Compiler not configured - please reconfigure"
#endif
//
// last known and checked version is 4.4 (Pre-release):
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 4))
// last known and checked version is 4.0 (Pre-release):
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 0))
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# else

View File

@@ -1,56 +0,0 @@
// (C) Copyright John Maddock 2006.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org for most recent version.
// GCC-XML C++ compiler setup:
# if !defined(__GCCXML_GNUC__) || ((__GCCXML_GNUC__ <= 3) && (__GCCXML_GNUC_MINOR__ <= 3))
# define BOOST_NO_IS_ABSTRACT
# endif
//
// Threading support: Turn this on unconditionally here (except for
// those platforms where we can know for sure). It will get turned off again
// later if no threading API is detected.
//
#if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__)
# define BOOST_HAS_THREADS
#endif
//
// gcc has "long long"
//
#define BOOST_HAS_LONG_LONG
// C++0x features:
//
# define BOOST_NO_CONSTEXPR
# define BOOST_NO_NULLPTR
# define BOOST_NO_TEMPLATE_ALIASES
# define BOOST_NO_DECLTYPE
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
# define BOOST_NO_RVALUE_REFERENCES
# define BOOST_NO_STATIC_ASSERT
# define BOOST_NO_VARIADIC_TEMPLATES
# define BOOST_NO_VARIADIC_MACROS
# define BOOST_NO_AUTO_DECLARATIONS
# define BOOST_NO_AUTO_MULTIDECLARATIONS
# define BOOST_NO_CHAR16_T
# define BOOST_NO_CHAR32_T
# define BOOST_NO_DEFAULTED_FUNCTIONS
# define BOOST_NO_DELETED_FUNCTIONS
# define BOOST_NO_INITIALIZER_LISTS
# define BOOST_NO_SCOPED_ENUMS
# define BOOST_NO_SFINAE_EXPR
# define BOOST_NO_SCOPED_ENUMS
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
# define BOOST_NO_LAMBDAS
# define BOOST_NO_RAW_LITERALS
# define BOOST_NO_UNICODE_LITERALS
#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__

View File

@@ -3,7 +3,6 @@
// (C) Copyright Aleksey Gurtovoy 2002.
// (C) Copyright David Abrahams 2002 - 2003.
// (C) Copyright Toon Knapen 2003.
// (C) Copyright Boris Gubenko 2006 - 2007.
// Use, modification and distribution are subject to 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)
@@ -12,10 +11,6 @@
// HP aCC C++ compiler setup:
#if defined(__EDG__)
#include "boost/config/compiler/common_edg.hpp"
#endif
#if (__HP_aCC <= 33100)
# define BOOST_NO_INTEGRAL_INT64_T
# define BOOST_NO_OPERATORS_IN_NAMESPACE
@@ -32,17 +27,14 @@
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
#endif
#if (__HP_aCC <= 38000)
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#endif
#if (__HP_aCC > 50000) && (__HP_aCC < 60000)
#if (__HP_aCC <= 33900) || !defined(BOOST_STRICT_CONFIG)
# define BOOST_NO_UNREACHABLE_RETURN_DETECTION
# define BOOST_NO_TEMPLATE_TEMPLATES
# define BOOST_NO_SWPRINTF
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
# define BOOST_NO_IS_ABSTRACT
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
// std lib config should set this one already:
//# define BOOST_NO_STD_ALLOCATOR
#endif
// optional features rather than defects:
@@ -55,83 +47,24 @@
# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
#endif
// This macro should not be defined when compiling in strict ansi
// mode, but, currently, we don't have the ability to determine
// what standard mode we are compiling with. Some future version
// of aCC6 compiler will provide predefined macros reflecting the
// compilation options, including the standard mode.
#if (__HP_aCC >= 60000) || ((__HP_aCC > 38000) && defined(__hpxstd98))
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#endif
#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
#define BOOST_COMPILER "HP aCC version " BOOST_STRINGIZE(__HP_aCC)
//
// versions check:
// we don't support HP aCC prior to version 33000:
// we don't support HP aCC prior to version 0:
#if __HP_aCC < 33000
# error "Compiler not supported or configured - please reconfigure"
#endif
//
// Extended checks for supporting aCC on PA-RISC
#if __HP_aCC > 30000 && __HP_aCC < 50000
# if __HP_aCC < 38000
// versions prior to version A.03.80 not supported
# error "Compiler version not supported - version A.03.80 or higher is required"
# elif !defined(__hpxstd98)
// must compile using the option +hpxstd98 with version A.03.80 and above
# error "Compiler option '+hpxstd98' is required for proper support"
# endif //PA-RISC
#endif
//
// C++0x features
//
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
//
#if !defined(__EDG__)
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_EXTERN_TEMPLATE
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
/*
See https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443331 and
https://forums13.itrc.hp.com/service/forums/questionanswer.do?threadId=1443436
*/
#if (__HP_aCC < 62500) || !defined(HP_CXX0x_SOURCE)
#define BOOST_NO_VARIADIC_MACROS
#endif
#endif
//
// last known and checked version for HP-UX/ia64 is 61300
// last known and checked version for PA-RISC is 38000
#if ((__HP_aCC > 61300) || ((__HP_aCC > 38000) && defined(__hpxstd98)))
// last known and checked version is 0:
#if (__HP_aCC > 53800)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# endif
#endif

View File

@@ -1,13 +1,13 @@
// (C) Copyright John Maddock 2001-8.
// (C) Copyright Peter Dimov 2001.
// (C) Copyright Jens Maurer 2001.
// (C) Copyright David Abrahams 2002 - 2003.
// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
// (C) Copyright Guillaume Melquiond 2002 - 2003.
// (C) Copyright Beman Dawes 2003.
// (C) Copyright Martin Wille 2003.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// (C) Copyright John Maddock 2001.
// (C) Copyright Peter Dimov 2001.
// (C) Copyright Jens Maurer 2001.
// (C) Copyright David Abrahams 2002 - 2003.
// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
// (C) Copyright Guillaume Melquiond 2002 - 2003.
// (C) Copyright Beman Dawes 2003.
// (C) Copyright Martin Wille 2003.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org for most recent version.
@@ -79,30 +79,15 @@
// supports wchar_t natively. *BUT* there is a problem here: the standard
// headers define this macro if they typedef wchar_t. Anyway, we're lucky
// because they define it without a value, while Intel C++ defines it
// to 1. So we can check its value to see if the macro was defined natively
// or not.
// Under UNIX, the situation is exactly the same, but the macro _WCHAR_T
// to 1. So we can check its value to see if the macro was defined natively
// or not.
// Under UNIX, the situation is exactly the same, but the macro _WCHAR_T
// is used instead.
# if ((_WCHAR_T_DEFINED + 0) == 0) && ((_WCHAR_T + 0) == 0)
# define BOOST_NO_INTRINSIC_WCHAR_T
# endif
#endif
#if defined(__GNUC__) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
//
// Figure out when Intel is emulating this gcc bug
// (All Intel versions prior to 9.0.26, and versions
// later than that if they are set up to emulate gcc 3.2
// or earlier):
//
# if ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 2)) || (BOOST_INTEL < 900) || (__INTEL_COMPILER_BUILD_DATE < 20050912)
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
# endif
#endif
#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (BOOST_INTEL_CXX_VERSION <= 1110)
// GCC or VC emulation:
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#endif
//
// Verify that we have actually got BOOST_NO_INTRINSIC_WCHAR_T
// set correctly, if we don't do this now, we will get errors later
@@ -128,7 +113,6 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
# define BOOST_HAS_MS_INT64
# endif
# define BOOST_NO_SWPRINTF
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#elif defined(_WIN32)
# define BOOST_DISABLE_WIN32
#endif
@@ -146,51 +130,17 @@ template<> struct assert_intrinsic_wchar_t<unsigned short> {};
#if BOOST_INTEL_CXX_VERSION < 500
# error "Compiler not supported or configured - please reconfigure"
#endif
// Intel on MacOS requires
#if defined(__APPLE__) && defined(__INTEL_COMPILER)
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#endif
// Intel on Altix Itanium
#if defined(__itanium__) && defined(__INTEL_COMPILER)
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#endif
//
// An attempt to value-initialize a pointer-to-member may trigger an
// internal error on Intel <= 11.1 (last checked version), as was
// reported by John Maddock, Intel support issue 589832, May 2010.
// Moreover, according to test results from Huang-Vista-x86_32_intel,
// intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some
// cases when it should be value-initialized.
// (Niels Dekker, LKEB, May 2010)
#if defined(__INTEL_COMPILER)
# if __INTEL_COMPILER <= 1110
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
# endif
#endif
//
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
//
#if defined(__GNUC__) && (__GNUC__ >= 4)
# define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
# define BOOST_SYMBOL_IMPORT
# define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
#endif
//
// last known and checked version:
#if (BOOST_INTEL_CXX_VERSION > 1110)
#if (BOOST_INTEL_CXX_VERSION > 900)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# elif defined(_MSC_VER)
//
// We don't emit this warning any more, since we have so few
// defect macros set anyway (just the one).
//
//# pragma message("Unknown compiler version - please run the configure tests and report the results")
# pragma message("Unknown compiler version - please run the configure tests and report the results")
# endif
#endif

View File

@@ -17,10 +17,12 @@
# endif
// see also common_edg.hpp which needs a special check for __KCC
# if !defined(_EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
# if !defined(_EXCEPTIONS)
# define BOOST_NO_EXCEPTIONS
# endif
#define BOOST_COMPILER "Kai C++ version " BOOST_STRINGIZE(__KCC_VERSION)
//
// last known and checked version is 4001:
#if (__KCC_VERSION > 4001)

View File

@@ -39,7 +39,7 @@
// the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last
// tested version *only*:
# if(__MWERKS__ <= 0x3207) || !defined(BOOST_STRICT_CONFIG) // 9.6
# if(__MWERKS__ <= 0x3206) || !defined(BOOST_STRICT_CONFIG) // 9.5
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# define BOOST_NO_IS_ABSTRACT
# endif
@@ -48,7 +48,7 @@
# define BOOST_NO_INTRINSIC_WCHAR_T
#endif
#if !__option(exceptions) && !defined(BOOST_NO_EXCEPTIONS)
#if !__option(exceptions)
# define BOOST_NO_EXCEPTIONS
#endif
@@ -73,8 +73,6 @@
# define BOOST_COMPILER_VERSION 9.4
# elif __MWERKS__ == 0x3206
# define BOOST_COMPILER_VERSION 9.5
# elif __MWERKS__ == 0x3207
# define BOOST_COMPILER_VERSION 9.6
# else
# define BOOST_COMPILER_VERSION __MWERKS__
# endif
@@ -82,40 +80,6 @@
# define BOOST_COMPILER_VERSION __MWERKS__
#endif
//
// C++0x features
//
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
//
#if __MWERKS__ > 0x3206 && __option(rvalue_refs)
# define BOOST_HAS_RVALUE_REFS
#else
# define BOOST_NO_RVALUE_REFERENCES
#endif
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_EXTERN_TEMPLATE
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_VARIADIC_MACROS
#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
//

View File

@@ -32,39 +32,8 @@
# define BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
# define BOOST_NO_STD_ALLOCATOR /* actually a bug with const reference overloading */
#endif
//
// C++0x features
//
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
//
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_EXTERN_TEMPLATE
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_VARIADIC_MACROS
//
// versions check:
// we don't support MPW prior to version 8.9:

View File

@@ -1,87 +0,0 @@
// (C) Copyright Eric Jourdanneau, Joel Falcou 2010
// Use, modification and distribution are subject to 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)
// See http://www.boost.org for most recent version.
// NVIDIA CUDA C++ compiler setup
#ifndef BOOST_COMPILER
# define BOOST_COMPILER "NVIDIA CUDA C++ Compiler"
#endif
// NVIDIA Specific support
// BOOST_GPU_ENABLED : Flag a function or a method as being enabled on the host and device
#define BOOST_GPU_ENABLED __host__ __device__
// Boost support macro for NVCC
// NVCC Basically behaves like some flavor of MSVC6 + some specific quirks
#define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
#define BOOST_MSVC6_MEMBER_TEMPLATES
#define BOOST_HAS_UNISTD_H
#define BOOST_HAS_STDINT_H
#define BOOST_HAS_SIGACTION
#define BOOST_HAS_SCHED_YIELD
#define BOOST_HAS_PTHREADS
#define BOOST_HAS_PTHREAD_YIELD
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
#define BOOST_HAS_PARTIAL_STD_ALLOCATOR
#define BOOST_HAS_NRVO
#define BOOST_HAS_NL_TYPES_H
#define BOOST_HAS_NANOSLEEP
#define BOOST_HAS_LONG_LONG
#define BOOST_HAS_LOG1P
#define BOOST_HAS_GETTIMEOFDAY
#define BOOST_HAS_EXPM1
#define BOOST_HAS_DIRENT_H
#define BOOST_HAS_CLOCK_GETTIME
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_VARIADIC_MACROS
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_STD_UNORDERED
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_NULLPTR
#define BOOST_NO_LAMBDAS
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_MS_INT64_NUMERIC_LIMITS
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_EXTERN_TEMPLATE
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DECLTYPE
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_CONCEPTS
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CHAR16_T
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_0X_HDR_UNORDERED_SET
#define BOOST_NO_0X_HDR_UNORDERED_MAP
#define BOOST_NO_0X_HDR_TYPE_TRAITS
#define BOOST_NO_0X_HDR_TUPLE
#define BOOST_NO_0X_HDR_THREAD
#define BOOST_NO_0X_HDR_TYPEINDEX
#define BOOST_NO_0X_HDR_SYSTEM_ERROR
#define BOOST_NO_0X_HDR_REGEX
#define BOOST_NO_0X_HDR_RATIO
#define BOOST_NO_0X_HDR_RANDOM
#define BOOST_NO_0X_HDR_MUTEX
#define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
#define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
#define BOOST_NO_0X_HDR_INITIALIZER_LIST
#define BOOST_NO_0X_HDR_FUTURE
#define BOOST_NO_0X_HDR_FORWARD_LIST
#define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
#define BOOST_NO_0X_HDR_CONDITION_VARIABLE
#define BOOST_NO_0X_HDR_CONCEPTS
#define BOOST_NO_0X_HDR_CODECVT
#define BOOST_NO_0X_HDR_CHRONO
#define BOOST_NO_0X_HDR_ARRAY

View File

@@ -1,78 +0,0 @@
// (C) Copyright Noel Belcourt 2007.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org for most recent version.
// PGI C++ compiler setup:
#define BOOST_COMPILER_VERSION __PGIC__##__PGIC_MINOR__
#define BOOST_COMPILER "PGI compiler version " BOOST_STRINGIZE(_COMPILER_VERSION)
//
// Threading support:
// Turn this on unconditionally here, it will get turned off again later
// if no threading API is detected.
//
// PGI 10.x doesn't seem to define __PGIC__
// versions earlier than 10.x do define __PGIC__
#if __PGIC__ >= 10
// options requested by configure --enable-test
#define BOOST_HAS_PTHREADS
#define BOOST_HAS_NRVO
#define BOOST_HAS_LONG_LONG
// options --enable-test wants undefined
#undef BOOST_NO_STDC_NAMESPACE
#undef BOOST_NO_EXCEPTION_STD_NAMESPACE
#undef BOOST_DEDUCED_TYPENAME
#elif __PGIC__ >= 7
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#define BOOST_NO_SWPRINTF
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_AUTO_DECLARATIONS
#else
# error "Pgi compiler not configured - please reconfigure"
#endif
//
// C++0x features
//
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
//
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_EXTERN_TEMPLATE
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_VARIADIC_MACROS
//
// version check:
// probably nothing to do here?

View File

@@ -17,11 +17,6 @@
// if no threading API is detected.
//
#define BOOST_HAS_THREADS
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#undef BOOST_NO_SWPRINTF
#undef BOOST_DEDUCED_TYPENAME
//
// version check:
// probably nothing to do here?

View File

@@ -40,7 +40,7 @@
// initialized in-class.
// >> Assertion: (../links/dbg_cstabs.cc, line 611)
// while processing ../test.cpp at line 0.
// (Jens Maurer according to Gottfried Ganssauge 04 Mar 2002)
// (Jens Maurer according to Gottfried Ganßauge 04 Mar 2002)
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
// SunPro 5.3 has better support for partial specialization,
@@ -64,70 +64,9 @@
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
# define BOOST_NO_SFINAE
# define BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS
# endif
# if (__SUNPRO_CC <= 0x580)
# define BOOST_NO_IS_ABSTRACT
# endif
# if (__SUNPRO_CC <= 0x5100)
// Sun 5.10 may not correctly value-initialize objects of
// some user defined types, as was reported in April 2010
// (CR 6947016), and confirmed by Steve Clamage.
// (Niels Dekker, LKEB, May 2010).
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
# endif
//
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
//
#if __SUNPRO_CC > 0x500
# define BOOST_SYMBOL_EXPORT __global
# define BOOST_SYMBOL_IMPORT __global
# define BOOST_SYMBOL_VISIBLE __global
#endif
//
// Issues that effect all known versions:
//
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#define BOOST_NO_ADL_BARRIER
//
// C++0x features
//
# define BOOST_HAS_LONG_LONG
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_EXTERN_TEMPLATE
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_VARIADIC_MACROS
//
// Version
//
#define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC)
//
@@ -137,9 +76,15 @@
#error "Compiler not supported or configured - please reconfigure"
#endif
//
// last known and checked version is 0x590:
#if (__SUNPRO_CC > 0x590)
// last known and checked version is 0x570:
#if (__SUNPRO_CC > 0x570)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# endif
#endif

View File

@@ -1,7 +1,7 @@
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Toon Knapen 2001 - 2003.
// (C) Copyright Lie-Quan Lee 2001.
// (C) Copyright Markus Schoepflin 2002 - 2003.
// (C) Copyright Markus Schöpflin 2002 - 2003.
// (C) Copyright Beman Dawes 2002 - 2003.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
@@ -27,15 +27,7 @@
#if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG)
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
# define BOOST_NO_INITIALIZER_LISTS
#endif
#if (__IBMCPP__ <= 1110)
// XL C++ V11.1 and earlier versions may not always value-initialize
// a temporary object T(), when T is a non-POD aggregate class type.
// Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it
// high priority. -- Niels Dekker (LKEB), May 2010.
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
# define BOOST_MPL_CFG_ASSERT_USE_RELATION_NAMES 1
#endif
//
@@ -55,43 +47,12 @@
#endif
//
// last known and checked version is 600:
#if (__IBMCPP__ > 1010)
#if (__IBMCPP__ > 600)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# endif
#endif
// Some versions of the compiler have issues with default arguments on partial specializations
#define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
//
// C++0x features
//
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
//
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_EXTERN_TEMPLATE
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_NULLPTR
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_VARIADIC_MACROS

View File

@@ -14,34 +14,23 @@
#define BOOST_MSVC _MSC_VER
#if _MSC_FULL_VER > 100000000
# define BOOST_MSVC_FULL_VER _MSC_FULL_VER
#else
# define BOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10)
#endif
// turn off the warnings before we #include anything
#pragma warning( disable : 4503 ) // warning: decorated name length exceeded
#if _MSC_VER < 1300 // 1200 == VC++ 6.0, 1200-1202 == eVC++4
# pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
#if _MSC_VER < 1300 // 1200 == VC++ 6.0, 1201 == EVC4.2
#pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
# define BOOST_NO_VOID_RETURNS
# define BOOST_NO_EXCEPTION_STD_NAMESPACE
# if BOOST_MSVC == 1202
# define BOOST_NO_STD_TYPEINFO
# endif
// disable min/max macro defines on vc6:
//
#endif
#if (_MSC_VER <= 1300) // 1300 == VC++ 7.0
# if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) // VC7 bug with /Za
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
# endif
#if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) // VC7 bug with /Za
# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
#endif
# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
@@ -67,26 +56,13 @@
# define BOOST_NO_SFINAE
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
# define BOOST_NO_IS_ABSTRACT
# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
// TODO: what version is meant here? Have there really been any fixes in cl 12.01 (as e.g. shipped with eVC4)?
# if (_MSC_VER > 1200)
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
# endif
#endif
#if _MSC_VER < 1400
// although a conforming signature for swprint exists in VC7.1
// it appears not to actually work:
# define BOOST_NO_SWPRINTF
// Our extern template tests also fail for this compiler:
# define BOOST_NO_EXTERN_TEMPLATE
// Variadic macros do not exist for VC7.1 and lower
# define BOOST_NO_VARIADIC_MACROS
#endif
#if defined(UNDER_CE)
// Windows CE does not have a conforming signature for swprintf
#if _MSC_VER < 1310 // 1310 == VC++ 7.1
# define BOOST_NO_SWPRINTF
#endif
@@ -94,50 +70,18 @@
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
#endif
#if _MSC_VER <= 1600 // 1600 == VC++ 10.0
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#endif
#if _MSC_VER == 1500 // 1500 == VC++ 9.0
// A bug in VC9:
# define BOOST_NO_ADL_BARRIER
#endif
#if (_MSC_VER <= 1600)
// MSVC (including the latest checked version) has not yet completely
// implemented value-initialization, as is reported:
// "VC++ does not value-initialize members of derived classes without
// user-declared constructor", reported in 2009 by Sylvester Hesp:
// https://connect.microsoft.com/VisualStudio/feedback/details/484295
// "Presence of copy constructor breaks member class initialization",
// reported in 2009 by Alex Vakulenko:
// https://connect.microsoft.com/VisualStudio/feedback/details/499606
// "Value-initialization in new-expression", reported in 2005 by
// Pavel Kuznetsov (MetaCommunications Engineering):
// https://connect.microsoft.com/VisualStudio/feedback/details/100744
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
// (Niels Dekker, LKEB, May 2010)
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
#endif
#if _MSC_VER <= 1500 || !defined(BOOST_STRICT_CONFIG) // 1500 == VC++ 9.0
# define BOOST_NO_INITIALIZER_LISTS
#endif
#ifndef _NATIVE_WCHAR_T_DEFINED
# define BOOST_NO_INTRINSIC_WCHAR_T
#endif
#if defined(_WIN32_WCE) || defined(UNDER_CE)
#ifdef _WIN32_WCE
# define BOOST_NO_THREADEX
# define BOOST_NO_GETSYSTEMTIMEASFILETIME
# define BOOST_NO_SWPRINTF
#endif
//
// check for exception handling support:
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
#ifndef _CPPUNWIND
# define BOOST_NO_EXCEPTIONS
#endif
@@ -147,61 +91,21 @@
#if (_MSC_VER >= 1200)
# define BOOST_HAS_MS_INT64
#endif
#if (_MSC_VER >= 1310) && (defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400))
#if (_MSC_VER >= 1310) && defined(_MSC_EXTENSIONS)
# define BOOST_HAS_LONG_LONG
#else
# define BOOST_NO_LONG_LONG
#endif
#if (_MSC_VER >= 1400) && !defined(_DEBUG)
# define BOOST_HAS_NRVO
#endif
//
// disable Win32 API's if compiler extentions are
// turned off:
//
#if !defined(_MSC_EXTENSIONS) && !defined(BOOST_DISABLE_WIN32)
#ifndef _MSC_EXTENSIONS
# define BOOST_DISABLE_WIN32
#endif
#if !defined(_CPPRTTI) && !defined(BOOST_NO_RTTI)
# define BOOST_NO_RTTI
#endif
//
// C++0x features
// all versions support __declspec:
//
// See above for BOOST_NO_LONG_LONG
// C++ features supported by VC++ 10 (aka 2010)
//
#if _MSC_VER < 1600
#define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS
#define BOOST_NO_LAMBDAS
#define BOOST_NO_RVALUE_REFERENCES
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_NULLPTR
#endif // _MSC_VER < 1600
#if _MSC_VER >= 1600
#define BOOST_HAS_STDINT_H
#endif
// C++0x features not supported by any versions
#define BOOST_NO_CHAR16_T
#define BOOST_NO_CHAR32_T
#define BOOST_NO_CONCEPTS
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_DEFAULTED_FUNCTIONS
#define BOOST_NO_DECLTYPE
#define BOOST_NO_DELETED_FUNCTIONS
#define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
#define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_HAS_DECLSPEC
//
// prefix and suffix headers:
//
@@ -212,49 +116,16 @@
# define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp"
#endif
// TODO:
// these things are mostly bogus. 1200 means version 12.0 of the compiler. The
// artificial versions assigned to them only refer to the versions of some IDE
// these compilers have been shipped with, and even that is not all of it. Some
// were shipped with freely downloadable SDKs, others as crosscompilers in eVC.
// IOW, you can't use these 'versions' in any sensible way. Sorry.
# if defined(UNDER_CE)
# if _MSC_VER < 1200
// Note: these are so far off, they are not really supported
# elif _MSC_VER < 1300 // eVC++ 4 comes with 1200-1202
# define BOOST_COMPILER_VERSION evc4.0
# elif _MSC_VER == 1400
# define BOOST_COMPILER_VERSION evc8
# elif _MSC_VER == 1500
# define BOOST_COMPILER_VERSION evc9
# elif _MSC_VER == 1600
# define BOOST_COMPILER_VERSION evc10
# else
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown EVC++ compiler version - please run the configure tests and report the results"
# else
# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
# endif
# endif
# if _MSC_VER == 1200
# define BOOST_COMPILER_VERSION 6.0
# elif _MSC_VER == 1300
# define BOOST_COMPILER_VERSION 7.0
# elif _MSC_VER == 1310
# define BOOST_COMPILER_VERSION 7.1
# elif _MSC_VER == 1400
# define BOOST_COMPILER_VERSION 8.0
# else
# if _MSC_VER < 1200
// Note: these are so far off, they are not really supported
# define BOOST_COMPILER_VERSION 5.0
# elif _MSC_VER < 1300
# define BOOST_COMPILER_VERSION 6.0
# elif _MSC_VER == 1300
# define BOOST_COMPILER_VERSION 7.0
# elif _MSC_VER == 1310
# define BOOST_COMPILER_VERSION 7.1
# elif _MSC_VER == 1400
# define BOOST_COMPILER_VERSION 8.0
# elif _MSC_VER == 1500
# define BOOST_COMPILER_VERSION 9.0
# elif _MSC_VER == 1600
# define BOOST_COMPILER_VERSION 10.0
# else
# define BOOST_COMPILER_VERSION _MSC_VER
# endif
# define BOOST_COMPILER_VERSION _MSC_VER
# endif
#define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
@@ -266,8 +137,8 @@
#error "Compiler not supported or configured - please reconfigure"
#endif
//
// last known and checked version is 1600 (VC10, aka 2010):
#if (_MSC_VER > 1600)
// last known and checked version is 1310:
#if (_MSC_VER > 1400)
# if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results"
# else

View File

@@ -1,28 +0,0 @@
// (C) Copyright John Maddock 2008.
// Use, modification and distribution are subject to 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)
//
// The aim of this header is just to include <cmath> but to do
// so in a way that does not result in recursive inclusion of
// the Boost TR1 components if boost/tr1/tr1/cmath is in the
// include search path. We have to do this to avoid circular
// dependencies:
//
#ifndef BOOST_CONFIG_CMATH
# define BOOST_CONFIG_CMATH
# ifndef BOOST_TR1_NO_RECURSION
# define BOOST_TR1_NO_RECURSION
# define BOOST_CONFIG_NO_CMATH_RECURSION
# endif
# include <cmath>
# ifdef BOOST_CONFIG_NO_CMATH_RECURSION
# undef BOOST_TR1_NO_RECURSION
# undef BOOST_CONFIG_NO_CMATH_RECURSION
# endif
#endif

View File

@@ -1,28 +0,0 @@
// (C) Copyright John Maddock 2005.
// Use, modification and distribution are subject to 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)
//
// The aim of this header is just to include <complex> but to do
// so in a way that does not result in recursive inclusion of
// the Boost TR1 components if boost/tr1/tr1/complex is in the
// include search path. We have to do this to avoid circular
// dependencies:
//
#ifndef BOOST_CONFIG_COMPLEX
# define BOOST_CONFIG_COMPLEX
# ifndef BOOST_TR1_NO_RECURSION
# define BOOST_TR1_NO_RECURSION
# define BOOST_CONFIG_NO_COMPLEX_RECURSION
# endif
# include <complex>
# ifdef BOOST_CONFIG_NO_COMPLEX_RECURSION
# undef BOOST_TR1_NO_RECURSION
# undef BOOST_CONFIG_NO_COMPLEX_RECURSION
# endif
#endif

View File

@@ -1,28 +0,0 @@
// (C) Copyright John Maddock 2005.
// Use, modification and distribution are subject to 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)
//
// The aim of this header is just to include <functional> but to do
// so in a way that does not result in recursive inclusion of
// the Boost TR1 components if boost/tr1/tr1/functional is in the
// include search path. We have to do this to avoid circular
// dependencies:
//
#ifndef BOOST_CONFIG_FUNCTIONAL
# define BOOST_CONFIG_FUNCTIONAL
# ifndef BOOST_TR1_NO_RECURSION
# define BOOST_TR1_NO_RECURSION
# define BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
# endif
# include <functional>
# ifdef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
# undef BOOST_TR1_NO_RECURSION
# undef BOOST_CONFIG_NO_FUNCTIONAL_RECURSION
# endif
#endif

View File

@@ -1,28 +0,0 @@
// (C) Copyright John Maddock 2005.
// Use, modification and distribution are subject to 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)
//
// The aim of this header is just to include <memory> but to do
// so in a way that does not result in recursive inclusion of
// the Boost TR1 components if boost/tr1/tr1/memory is in the
// include search path. We have to do this to avoid circular
// dependencies:
//
#ifndef BOOST_CONFIG_MEMORY
# define BOOST_CONFIG_MEMORY
# ifndef BOOST_TR1_NO_RECURSION
# define BOOST_TR1_NO_RECURSION
# define BOOST_CONFIG_NO_MEMORY_RECURSION
# endif
# include <memory>
# ifdef BOOST_CONFIG_NO_MEMORY_RECURSION
# undef BOOST_TR1_NO_RECURSION
# undef BOOST_CONFIG_NO_MEMORY_RECURSION
# endif
#endif

View File

@@ -1,28 +0,0 @@
// (C) Copyright John Maddock 2005.
// Use, modification and distribution are subject to 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)
//
// The aim of this header is just to include <utility> but to do
// so in a way that does not result in recursive inclusion of
// the Boost TR1 components if boost/tr1/tr1/utility is in the
// include search path. We have to do this to avoid circular
// dependencies:
//
#ifndef BOOST_CONFIG_UTILITY
# define BOOST_CONFIG_UTILITY
# ifndef BOOST_TR1_NO_RECURSION
# define BOOST_TR1_NO_RECURSION
# define BOOST_CONFIG_NO_UTILITY_RECURSION
# endif
# include <utility>
# ifdef BOOST_CONFIG_NO_UTILITY_RECURSION
# undef BOOST_TR1_NO_RECURSION
# undef BOOST_CONFIG_NO_UTILITY_RECURSION
# endif
#endif

View File

@@ -9,7 +9,7 @@
// generic BSD config options:
#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__)
#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__)
#error "This platform is not BSD"
#endif
@@ -19,8 +19,6 @@
#define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__)
#elif defined(__OpenBSD__)
#define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__)
#elif defined(__DragonFly__)
#define BOOST_PLATFORM "DragonFly " BOOST_STRINGIZE(__DragonFly__)
#endif
//
@@ -28,7 +26,7 @@
// FreeBSD has <nl_types.h> but does not
// advertise the fact in <unistd.h>:
//
#if (defined(__FreeBSD__) && (__FreeBSD__ >= 3)) || defined(__DragonFly__)
#if defined(__FreeBSD__) && (__FreeBSD__ >= 3)
# define BOOST_HAS_NL_TYPES_H
#endif
@@ -36,33 +34,20 @@
// FreeBSD 3.x has pthreads support, but defines _POSIX_THREADS in <pthread.h>
// and not in <unistd.h>
//
#if (defined(__FreeBSD__) && (__FreeBSD__ <= 3))\
|| defined(__OpenBSD__) || defined(__DragonFly__)
#if defined(__FreeBSD__) && (__FreeBSD__ <= 3)
# define BOOST_HAS_PTHREADS
#endif
//
// No wide character support in the BSD header files:
//
#if defined(__NetBSD__)
#define __NetBSD_GCC__ (__GNUC__ * 1000000 \
+ __GNUC_MINOR__ * 1000 \
+ __GNUC_PATCHLEVEL__)
// XXX - the following is required until c++config.h
// defines _GLIBCXX_HAVE_SWPRINTF and friends
// or the preprocessor conditionals are removed
// from the cwchar header.
#define _GLIBCXX_HAVE_SWPRINTF 1
#endif
#if !((defined(__FreeBSD__) && (__FreeBSD__ >= 5)) \
|| (defined(__NetBSD_GCC__) && (__NetBSD_GCC__ >= 2095003)) || defined(__DragonFly__))
#if !(defined(__FreeBSD__) && (__FreeBSD__ >= 5))
# define BOOST_NO_CWCHAR
#endif
//
// The BSD <ctype.h> has macros only, no functions:
//
#if !defined(__OpenBSD__) || defined(__DragonFly__)
#if !defined(__OpenBSD__)
# define BOOST_NO_CTYPE_FUNCTIONS
#endif

View File

@@ -8,9 +8,10 @@
// cygwin specific config options:
#define BOOST_PLATFORM "Cygwin"
#define BOOST_NO_CWCTYPE
#define BOOST_NO_CWCHAR
#define BOOST_NO_SWPRINTF
#define BOOST_HAS_DIRENT_H
#define BOOST_HAS_LOG1P
#define BOOST_HAS_EXPM1
//
// Threading API:
@@ -41,15 +42,7 @@
// boilerplate code:
#include <boost/config/posix_features.hpp>
//
// Cygwin lies about XSI conformance, there is no nl_types.h:
//
#ifdef BOOST_HAS_NL_TYPES_H
# undef BOOST_HAS_NL_TYPES_H
#endif

View File

@@ -2,7 +2,6 @@
// (C) Copyright Jens Maurer 2001 - 2003.
// (C) Copyright David Abrahams 2002.
// (C) Copyright Toon Knapen 2003.
// (C) Copyright Boris Gubenko 2006 - 2007.
// Use, modification and distribution are subject to 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)
@@ -16,17 +15,11 @@
// In principle, HP-UX has a nice <stdint.h> under the name <inttypes.h>
// However, it has the following problem:
// Use of UINT32_C(0) results in "0u l" for the preprocessed source
// (verifyable with gcc 2.95.3)
#if (defined(__GNUC__) && (__GNUC__ >= 3)) || defined(__HP_aCC)
# define BOOST_HAS_STDINT_H
#endif
// (verifyable with gcc 2.95.3, assumed for HP aCC)
// #define BOOST_HAS_STDINT_H
#if !(defined(__HP_aCC) || !defined(_INCLUDE__STDC_A1_SOURCE))
# define BOOST_NO_SWPRINTF
#endif
#if defined(__HP_aCC) && !defined(_INCLUDE__STDC_A1_SOURCE)
# define BOOST_NO_CWCTYPE
#endif
#define BOOST_NO_SWPRINTF
#define BOOST_NO_CWCTYPE
#if defined(__GNUC__)
# if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3))
@@ -37,8 +30,6 @@
# define BOOST_HAS_THREADS
# define BOOST_HAS_PTHREADS
# endif
#elif defined(__HP_aCC) && !defined(BOOST_DISABLE_THREADS)
# define BOOST_HAS_PTHREADS
#endif
// boilerplate code:
@@ -73,15 +64,5 @@
#ifndef BOOST_HAS_SIGACTION
# define BOOST_HAS_SIGACTION
#endif
#ifndef BOOST_HAS_NRVO
# ifndef __parisc
# define BOOST_HAS_NRVO
# endif
#endif
#ifndef BOOST_HAS_LOG1P
# define BOOST_HAS_LOG1P
#endif
#ifndef BOOST_HAS_EXPM1
# define BOOST_HAS_EXPM1
#endif

View File

@@ -47,14 +47,6 @@
# define BOOST_NO_STDC_NAMESPACE
# endif
# if (__GNUC__ == 4)
// Both gcc and intel require these.
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# define BOOST_HAS_NANOSLEEP
# endif
#else
// Using the MSL C library.

View File

@@ -1,31 +0,0 @@
// (C) Copyright Jim Douglas 2005.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org for most recent version.
// QNX specific config options:
#define BOOST_PLATFORM "QNX"
#define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp>
// QNX claims XOpen version 5 compatibility, but doesn't have an nl_types.h
// or log1p and expm1:
#undef BOOST_HAS_NL_TYPES_H
#undef BOOST_HAS_LOG1P
#undef BOOST_HAS_EXPM1
#define BOOST_HAS_PTHREADS
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
#define BOOST_HAS_GETTIMEOFDAY
#define BOOST_HAS_CLOCK_GETTIME
#define BOOST_HAS_NANOSLEEP

View File

@@ -16,13 +16,6 @@
#define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp>
//
// pthreads don't actually work with gcc unless _PTHREADS is defined:
//
#if defined(__GNUC__) && defined(_POSIX_THREADS) && !defined(_PTHREADS)
# undef BOOST_HAS_PTHREADS
#endif

View File

@@ -1,94 +0,0 @@
// (C) Copyright Yuriy Krasnoschek 2009.
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Jens Maurer 2001 - 2003.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org for most recent version.
// symbian specific config options:
#define BOOST_PLATFORM "Symbian"
#define BOOST_SYMBIAN 1
#if defined(__S60_3X__)
// Open C / C++ plugin was introdused in this SDK, earlier versions don't have CRT / STL
# define BOOST_S60_3rd_EDITION_FP2_OR_LATER_SDK
// make sure we have __GLIBC_PREREQ if available at all
# include <cstdlib>
// boilerplate code:
# define BOOST_HAS_UNISTD_H
# include <boost/config/posix_features.hpp>
// S60 SDK defines _POSIX_VERSION as POSIX.1
# ifndef BOOST_HAS_STDINT_H
# define BOOST_HAS_STDINT_H
# endif
# ifndef BOOST_HAS_GETTIMEOFDAY
# define BOOST_HAS_GETTIMEOFDAY
# endif
# ifndef BOOST_HAS_DIRENT_H
# define BOOST_HAS_DIRENT_H
# endif
# ifndef BOOST_HAS_SIGACTION
# define BOOST_HAS_SIGACTION
# endif
# ifndef BOOST_HAS_PTHREADS
# define BOOST_HAS_PTHREADS
# endif
# ifndef BOOST_HAS_NANOSLEEP
# define BOOST_HAS_NANOSLEEP
# endif
# ifndef BOOST_HAS_SCHED_YIELD
# define BOOST_HAS_SCHED_YIELD
# endif
# ifndef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# endif
# ifndef BOOST_HAS_LOG1P
# define BOOST_HAS_LOG1P
# endif
# ifndef BOOST_HAS_EXPM1
# define BOOST_HAS_EXPM1
# endif
# ifndef BOOST_POSIX_API
# define BOOST_POSIX_API
# endif
// endianess support
# include <sys/endian.h>
// Symbian SDK provides _BYTE_ORDER instead of __BYTE_ORDER
# ifndef __LITTLE_ENDIAN
# ifdef _LITTLE_ENDIAN
# define __LITTLE_ENDIAN _LITTLE_ENDIAN
# else
# define __LITTLE_ENDIAN 1234
# endif
# endif
# ifndef __BIG_ENDIAN
# ifdef _BIG_ENDIAN
# define __BIG_ENDIAN _BIG_ENDIAN
# else
# define __BIG_ENDIAN 4321
# endif
# endif
# ifndef __BYTE_ORDER
# define __BYTE_ORDER __LITTLE_ENDIAN // Symbian is LE
# endif
// Known limitations
# define BOOST_ASIO_DISABLE_SERIAL_PORT
# define BOOST_DATE_TIME_NO_LOCALE
# define BOOST_NO_STD_WSTRING
# define BOOST_EXCEPTION_DISABLE
# define BOOST_NO_EXCEPTIONS
#else // TODO: More platform support e.g. UIQ
# error "Unsuppoted Symbian SDK"
#endif
#if defined(__WINSCW__) && !defined(BOOST_DISABLE_WIN32)
# define BOOST_DISABLE_WIN32 // winscw defines WIN32 macro
#endif

View File

@@ -1,25 +0,0 @@
// (C) Copyright Artyom Beilis 2010.
// Use, modification and distribution are subject to 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_CONFIG_PLATFORM_VMS_HPP
#define BOOST_CONFIG_PLATFORM_VMS_HPP
#define BOOST_PLATFORM "OpenVMS"
#undef BOOST_HAS_STDINT_H
#define BOOST_HAS_UNISTD_H
#define BOOST_HAS_NL_TYPES_H
#define BOOST_HAS_GETTIMEOFDAY
#define BOOST_HAS_DIRENT_H
#define BOOST_HAS_PTHREADS
#define BOOST_HAS_NANOSLEEP
#define BOOST_HAS_CLOCK_GETTIME
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
#define BOOST_HAS_LOG1P
#define BOOST_HAS_EXPM1
#define BOOST_HAS_THREADS
#undef BOOST_HAS_SCHED_YIELD
#endif

View File

@@ -1,31 +0,0 @@
// (C) Copyright Dustin Spicuzza 2009.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org for most recent version.
// vxWorks specific config options:
#define BOOST_PLATFORM "vxWorks"
#define BOOST_NO_CWCHAR
#define BOOST_NO_INTRINSIC_WCHAR_T
#if defined(__GNUC__) && defined(__STRICT_ANSI__)
#define BOOST_NO_INT64_T
#endif
#define BOOST_HAS_UNISTD_H
// these allow posix_features to work, since vxWorks doesn't
// define them itself
#define _POSIX_TIMERS 1
#define _POSIX_THREADS 1
// vxworks doesn't work with asio serial ports
#define BOOST_ASIO_DISABLE_SERIAL_PORT
// boilerplate code:
#include <boost/config/posix_features.hpp>

View File

@@ -1,7 +1,6 @@
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Bill Kempf 2001.
// (C) Copyright Aleksey Gurtovoy 2003.
// (C) Copyright Rene Rivera 2005.
// Use, modification and distribution are subject to 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)
@@ -12,31 +11,17 @@
#define BOOST_PLATFORM "Win32"
// Get the information about the MinGW runtime, i.e. __MINGW32_*VERSION.
#if defined(__MINGW32__)
# include <_mingw.h>
#endif
#if defined(__GNUC__) && !defined(BOOST_NO_SWPRINTF)
# define BOOST_NO_SWPRINTF
#endif
// Default defines for BOOST_SYMBOL_EXPORT and BOOST_SYMBOL_IMPORT
// If a compiler doesn't support __declspec(dllexport)/__declspec(dllimport),
// its boost/config/compiler/ file must define BOOST_SYMBOL_EXPORT and
// BOOST_SYMBOL_IMPORT
#ifndef BOOST_SYMBOL_EXPORT
#if !defined(__GNUC__) && !defined(BOOST_HAS_DECLSPEC)
# define BOOST_HAS_DECLSPEC
# define BOOST_SYMBOL_EXPORT __declspec(dllexport)
# define BOOST_SYMBOL_IMPORT __declspec(dllimport)
#endif
#if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0)))
#if defined(__MINGW32__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 2)))
# define BOOST_HAS_STDINT_H
# define __STDC_LIMIT_MACROS
# define BOOST_HAS_DIRENT_H
# define BOOST_HAS_UNISTD_H
#endif
//

View File

@@ -74,22 +74,14 @@
// BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE:
// These are predicated on _XOPEN_VERSION, and appears to be first released
// in issue 4, version 2 (_XOPEN_VERSION > 500).
// Likewise for the functions log1p and expm1.
# if defined(_XOPEN_VERSION) && (_XOPEN_VERSION+0 >= 500)
# define BOOST_HAS_GETTIMEOFDAY
# if defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE+0 >= 500)
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# endif
# ifndef BOOST_HAS_LOG1P
# define BOOST_HAS_LOG1P
# endif
# ifndef BOOST_HAS_EXPM1
# define BOOST_HAS_EXPM1
# endif
# endif
# endif

View File

@@ -2,58 +2,20 @@
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Martin Wille 2003.
// (C) Copyright Guillaume Melquiond 2003.
//
// 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)
// See http://www.boost.org/ for most recent version.
// one identification macro for each of the
// compilers we support:
# define BOOST_CXX_GCCXML 0
# define BOOST_CXX_CLANG 0
# define BOOST_CXX_COMO 0
# define BOOST_CXX_DMC 0
# define BOOST_CXX_INTEL 0
# define BOOST_CXX_GNUC 0
# define BOOST_CXX_KCC 0
# define BOOST_CXX_SGI 0
# define BOOST_CXX_TRU64 0
# define BOOST_CXX_GHS 0
# define BOOST_CXX_BORLAND 0
# define BOOST_CXX_CW 0
# define BOOST_CXX_SUNPRO 0
# define BOOST_CXX_HPACC 0
# define BOOST_CXX_MPW 0
# define BOOST_CXX_IBMCPP 0
# define BOOST_CXX_MSVC 0
# define BOOST_CXX_PGI 0
# define BOOST_CXX_NVCC 0
// (C) Copyright Guillaume Melquiond 2003.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org for most recent version.
// locate which compiler we are using and define
// BOOST_COMPILER_CONFIG as needed:
#if defined(__GCCXML__)
// GCC-XML emulates other compilers, it has to appear first here!
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc_xml.hpp"
#elif defined __CUDACC__
// NVIDIA CUDA C++ compiler for GPU
# define BOOST_COMPILER_CONFIG "boost/config/compiler/nvcc.hpp"
#elif defined __COMO__
# if defined __COMO__
// Comeau C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp"
#elif defined __clang__
// Clang C++ emulates GCC, so it has to appear early.
# define BOOST_COMPILER_CONFIG "boost/config/compiler/clang.hpp"
#elif defined __DMC__
// Digital Mars C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/digitalmars.hpp"
@@ -82,10 +44,6 @@
// Greenhills C++
# define BOOST_COMPILER_CONFIG "boost/config/compiler/greenhills.hpp"
#elif defined __CODEGEARC__
// CodeGear - must be checked for before Borland
# define BOOST_COMPILER_CONFIG "boost/config/compiler/codegear.hpp"
#elif defined __BORLANDC__
// Borland
# define BOOST_COMPILER_CONFIG "boost/config/compiler/borland.hpp"
@@ -110,10 +68,6 @@
// IBM Visual Age
# define BOOST_COMPILER_CONFIG "boost/config/compiler/vacpp.hpp"
#elif defined(__PGI)
// Portland Group Inc.
# define BOOST_COMPILER_CONFIG "boost/config/compiler/pgi.hpp"
#elif defined _MSC_VER
// Microsoft Visual C++
//

View File

@@ -13,11 +13,11 @@
// <header_name> in order to prevent macro expansion within the header
// name (for example "linux" is a macro on linux systems).
#if defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)
// linux, also other platforms (Hurd etc) that use GLIBC, should these really have their own config headers though?
#if defined(linux) || defined(__linux) || defined(__linux__)
// linux:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp"
#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
// BSD:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/bsd.hpp"
@@ -57,21 +57,6 @@
// AmigaOS
# define BOOST_PLATFORM_CONFIG "boost/config/platform/amigaos.hpp"
#elif defined(__QNXNTO__)
// QNX:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/qnxnto.hpp"
#elif defined(__VXWORKS__)
// vxWorks:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vxworks.hpp"
#elif defined(__SYMBIAN32__)
// Symbian:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/symbian.hpp"
#elif defined(__VMS)
// VMS:
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vms.hpp"
#else
# if defined(unix) \

View File

@@ -11,10 +11,13 @@
// locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed:
// First include <cstddef> to determine if some version of STLport is in use as the std lib
// (do not rely on this header being included since users can short-circuit this header
// if they know whose std lib they are using.)
#include <cstddef>
// we need to include a std lib header here in order to detect which
// library is in use, use <utility> as it's about the smallest
// of the std lib headers - do not rely on this header being included -
// users can short-circuit this header if they know whose std lib
// they are using.
#include <utility>
#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
// STLPort library; this _must_ come first, otherwise since
@@ -22,17 +25,7 @@
// can end up detecting that first rather than STLport:
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp"
#else
// If our std lib was not some version of STLport, then include <utility> as it is about
// the smallest of the std lib headers that includes real C++ stuff. (Some std libs do not
// include their C++-related macros in <cstddef> so this additional include makes sure
// we get those definitions)
// (again do not rely on this header being included since users can short-circuit this
// header if they know whose std lib they are using.)
#include <boost/config/no_tr1/utility.hpp>
#if defined(__LIBCOMO__)
#elif defined(__LIBCOMO__)
// Comeau STL:
#define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp"
@@ -71,7 +64,5 @@
#endif
#endif

View File

@@ -12,7 +12,7 @@
// Dinkumware standard library config:
#if !defined(_YVALS) && !defined(_CPPLIB_VER)
#include <boost/config/no_tr1/utility.hpp>
#include <utility>
#if !defined(_YVALS) && !defined(_CPPLIB_VER)
#error This is not the Dinkumware lib!
#endif
@@ -55,10 +55,8 @@
# define BOOST_HAS_MACRO_USE_FACET
# ifndef _CPPLIB_VER
// Updated Dinkum library defines this, and provides
// its own min and max definitions, as does MTA version.
# ifndef __MTA__
# define BOOST_NO_STD_MIN_MAX
# endif
// its own min and max definitions.
# define BOOST_NO_STD_MIN_MAX
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
# endif
#endif
@@ -86,47 +84,6 @@
# define BOOST_NO_STD_LOCALE
#endif
#include <typeinfo>
#if !_HAS_EXCEPTIONS
# define BOOST_NO_STD_TYPEINFO
#endif
// C++0x headers implemented in 520 (as shipped by Microsoft)
//
#if !defined(_CPPLIB_VER) || _CPPLIB_VER < 520
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CODECVT
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_STD_UNORDERED // deprecated; see following
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_UNORDERED_SET
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_0X_HDR_TYPEINDEX
#endif
#if !defined(_HAS_TR1_IMPORTS) && !defined(BOOST_NO_0X_HDR_TUPLE)
# define BOOST_NO_0X_HDR_TUPLE
#endif
// C++0x headers not yet implemented
//
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CONCEPTS
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_THREAD
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
#ifdef _CPPLIB_VER
# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
#else

View File

@@ -10,7 +10,7 @@
// Comeau STL:
#if !defined(__LIBCOMO__)
# include <boost/config/no_tr1/utility.hpp>
# include <utility>
# if !defined(__LIBCOMO__)
# error "This is not the Comeau STL!"
# endif
@@ -33,33 +33,6 @@
# define BOOST_HAS_SLIST
#endif
// C++0x headers not yet implemented
//
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
# define BOOST_NO_0X_HDR_CONCEPTS
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
# define BOOST_NO_0X_HDR_THREAD
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_0X_HDR_TYPEINDEX
# define BOOST_NO_STD_UNORDERED // deprecated; see following
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_UNORDERED_SET
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
//
// Intrinsic type_traits support.
// The SGI STL has it's own __type_traits class, which

View File

@@ -1,7 +1,7 @@
// (C) Copyright John Maddock 2001.
// (C) Copyright Jens Maurer 2001.
// Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// (C) Copyright John Maddock 2001.
// (C) Copyright Jens Maurer 2001.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org for most recent version.
@@ -30,31 +30,28 @@
#endif
#ifdef __GLIBCXX__ // gcc 3.4 and greater:
# if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
|| defined(_GLIBCXX__PTHREADS)
//
# ifdef _GLIBCXX_HAVE_GTHR_DEFAULT
//
// If the std lib has thread support turned on, then turn it on in Boost
// as well. We do this because some gcc-3.4 std lib headers define _REENTANT
// while others do not...
//
//
# define BOOST_HAS_THREADS
# else
# define BOOST_DISABLE_THREADS
# endif
#elif defined(__GLIBCPP__) \
&& !defined(_GLIBCPP_HAVE_GTHR_DEFAULT) \
&& !defined(_GLIBCPP__PTHREADS)
#elif defined(__GLIBCPP__) && !defined(_GLIBCPP_HAVE_GTHR_DEFAULT)
// disable thread support if the std lib was built single threaded:
# define BOOST_DISABLE_THREADS
#endif
#if (defined(linux) || defined(__linux) || defined(__linux__)) && defined(__arm__) && defined(_GLIBCPP_HAVE_GTHR_DEFAULT)
// linux on arm apparently doesn't define _REENTRANT
// linux on arm apparently doesn't define _REENTRANT
// so just turn on threading support whenever the std lib is thread safe:
# define BOOST_HAS_THREADS
#endif
#if !defined(_GLIBCPP_USE_LONG_LONG) \
&& !defined(_GLIBCXX_USE_LONG_LONG)\
&& defined(BOOST_HAS_LONG_LONG)
@@ -62,73 +59,3 @@
// support is useless.
# undef BOOST_HAS_LONG_LONG
#endif
#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
# define BOOST_HAS_SLIST
# define BOOST_HAS_HASH
# define BOOST_SLIST_HEADER <ext/slist>
# if !defined(__GNUC__) || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3)
# define BOOST_HASH_SET_HEADER <ext/hash_set>
# define BOOST_HASH_MAP_HEADER <ext/hash_map>
# else
# define BOOST_HASH_SET_HEADER <backward/hash_set>
# define BOOST_HASH_MAP_HEADER <backward/hash_map>
# endif
#endif
// stdlibc++ C++0x support is detected via __GNUC__, __GNUC_MINOR__, and possibly
// __GNUC_PATCHLEVEL__ at the suggestion of Jonathan Wakely, one of the stdlibc++
// developers. He also commented:
//
// "I'm not sure how useful __GLIBCXX__ is for your purposes, for instance in
// GCC 4.2.4 it is set to 20080519 but in GCC 4.3.0 it is set to 20080305.
// Although 4.3.0 was released earlier than 4.2.4, it has better C++0x support
// than any release in the 4.2 series."
//
// Another resource for understanding stdlibc++ features is:
// http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#manual.intro.status.standard.200x
// C++0x headers in GCC 4.3.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_STD_UNORDERED // deprecated; see following
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_UNORDERED_SET
#endif
// C++0x headers in GCC 4.4.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
# define BOOST_NO_0X_HDR_THREAD
#endif
// C++0x features in GCC 4.5.0 and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
#endif
// C++0x headers not yet implemented
//
# define BOOST_NO_0X_HDR_CODECVT
# define BOOST_NO_0X_HDR_CONCEPTS
# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
# define BOOST_NO_0X_HDR_TYPEINDEX
// --- end ---

View File

@@ -8,7 +8,7 @@
// Modena C++ standard library (comes with KAI C++)
#if !defined(MSIPL_COMPILE_H)
# include <boost/config/no_tr1/utility.hpp>
# include <utility>
# if !defined(__MSIPL_COMPILE_H)
# error "This is not the Modena C++ library!"
# endif
@@ -22,33 +22,6 @@
#define BOOST_NO_STD_WSTRING
#endif
// C++0x headers not yet implemented
//
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
# define BOOST_NO_0X_HDR_CONCEPTS
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
# define BOOST_NO_0X_HDR_THREAD
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_0X_HDR_TYPEINDEX
# define BOOST_NO_STD_UNORDERED // deprecated; see following
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_UNORDERED_SET
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
#define BOOST_STDLIB "Modena C++ standard library"

View File

@@ -9,7 +9,7 @@
// Metrowerks standard library:
#ifndef __MSL_CPP__
# include <boost/config/no_tr1/utility.hpp>
# include <utility>
# ifndef __MSL_CPP__
# error This is not the MSL standard library!
# endif
@@ -46,32 +46,6 @@
# define BOOST_HAS_TWO_ARG_USE_FACET
#endif
// C++0x headers not yet implemented
//
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
# define BOOST_NO_0X_HDR_CONCEPTS
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
# define BOOST_NO_0X_HDR_THREAD
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_0X_HDR_TYPEINDEX
# define BOOST_NO_STD_UNORDERED // deprecated; see following
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_UNORDERED_SET
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__)

View File

@@ -1,7 +1,6 @@
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Jens Maurer 2001.
// (C) Copyright David Abrahams 2003.
// (C) Copyright Boris Gubenko 2007.
// Use, modification and distribution are subject to 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,7 +10,7 @@
// Rogue Wave std lib:
#if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
# include <boost/config/no_tr1/utility.hpp>
# include <utility>
# if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
# error This is not the Rogue Wave standard library
# endif
@@ -29,14 +28,8 @@
#ifndef _RWSTD_VER
# define BOOST_STDLIB "Rogue Wave standard library version (Unknown version)"
#elif _RWSTD_VER < 0x04010200
# define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER)
#else
# ifdef _RWSTD_VER_STR
# define BOOST_STDLIB "Apache STDCXX standard library version " _RWSTD_VER_STR
# else
# define BOOST_STDLIB "Apache STDCXX standard library version " BOOST_STRINGIZE(_RWSTD_VER)
# endif
# define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER)
#endif
//
@@ -132,50 +125,3 @@
#if !defined(_RWSTD_LONG_LONG) && defined(BOOST_HAS_LONG_LONG)
# undef BOOST_HAS_LONG_LONG
#endif
//
// check that on HP-UX, the proper RW library is used
//
#if defined(__HP_aCC) && !defined(_HP_NAMESPACE_STD)
# error "Boost requires Standard RW library. Please compile and link with -AA"
#endif
//
// Define macros specific to RW V2.2 on HP-UX
//
#if defined(__HP_aCC) && (BOOST_RWSTD_VER == 0x02020100)
# ifndef __HP_TC1_MAKE_PAIR
# define __HP_TC1_MAKE_PAIR
# endif
# ifndef _HP_INSTANTIATE_STD2_VL
# define _HP_INSTANTIATE_STD2_VL
# endif
#endif
// C++0x headers not yet implemented
//
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
# define BOOST_NO_0X_HDR_CONCEPTS
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
# define BOOST_NO_0X_HDR_THREAD
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_0X_HDR_TYPEINDEX
# define BOOST_NO_STD_UNORDERED // deprecated; see following
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_UNORDERED_SET
# define BOOST_NO_NUMERIC_LIMITS_LOWEST

View File

@@ -10,7 +10,7 @@
// generic SGI STL:
#if !defined(__STL_CONFIG_H)
# include <boost/config/no_tr1/utility.hpp>
# include <utility>
# if !defined(__STL_CONFIG_H)
# error "This is not the SGI STL!"
# endif
@@ -105,33 +105,6 @@
//
#define BOOST_HAS_SGI_TYPE_TRAITS
// C++0x headers not yet implemented
//
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
# define BOOST_NO_0X_HDR_CONCEPTS
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
# define BOOST_NO_0X_HDR_THREAD
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_0X_HDR_TYPEINDEX
# define BOOST_NO_STD_UNORDERED // deprecated; see following
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_UNORDERED_SET
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
#define BOOST_STDLIB "SGI standard library"

View File

@@ -10,7 +10,7 @@
// STLPort standard library config:
#if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
# include <cstddef>
# include <utility>
# if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
# error "This is not STLPort!"
# endif
@@ -52,7 +52,7 @@
// then the io stream facets are not available in namespace std::
//
#ifdef _STLPORT_VERSION
# if !(_STLPORT_VERSION >= 0x500) && !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
# if !defined(_STLP_OWN_IOSTREAMS) && defined(_STLP_USE_NAMESPACES) && defined(BOOST_NO_USING_TEMPLATE) && !defined(__BORLANDC__)
# define BOOST_NO_STD_LOCALE
# endif
#else
@@ -61,14 +61,6 @@
# endif
#endif
#if defined(_STLPORT_VERSION) && ((_STLPORT_VERSION < 0x500) || (_STLPORT_VERSION >= 0x520))
# define BOOST_NO_STD_UNORDERED
#endif
#if defined(_STLPORT_VERSION) && (_STLPORT_VERSION >= 0x520)
# define BOOST_HAS_TR1_UNORDERED_SET
# define BOOST_HAS_TR1_UNORDERED_MAP
#endif
//
// Without member template support enabled, their are no template
// iterate constructors, and no std::allocator:
@@ -82,7 +74,7 @@
//
#define BOOST_HAS_PARTIAL_STD_ALLOCATOR
#if !defined(_STLP_MEMBER_TEMPLATE_CLASSES) || defined(_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE)
#if !defined(_STLP_MEMBER_TEMPLATE_CLASSES)
# define BOOST_NO_STD_ALLOCATOR
#endif
@@ -106,10 +98,8 @@
//
// We always have SGI style hash_set, hash_map, and slist:
//
#ifndef _STLP_NO_EXTENSIONS
#define BOOST_HAS_HASH
#define BOOST_HAS_SLIST
#endif
//
// STLport does a good job of importing names into namespace std::,
@@ -200,33 +190,6 @@ namespace std{ using _STLP_VENDOR_CSTD::strcmp; using _STLP_VENDOR_CSTD::strcpy;
namespace boost { using std::min; using std::max; }
#endif
// C++0x headers not yet implemented
//
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
# define BOOST_NO_0X_HDR_CONCEPTS
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
# define BOOST_NO_0X_HDR_THREAD
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_0X_HDR_TYPEINDEX
# define BOOST_NO_STD_UNORDERED // deprecated; see following
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_UNORDERED_SET
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
#define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT)

View File

@@ -12,33 +12,6 @@
#define BOOST_HAS_MACRO_USE_FACET
#define BOOST_NO_STD_MESSAGES
// C++0x headers not yet implemented
//
# define BOOST_NO_0X_HDR_ARRAY
# define BOOST_NO_0X_HDR_CHRONO
# define BOOST_NO_0X_HDR_CODECVT
# define BOOST_NO_0X_HDR_CONCEPTS
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
# define BOOST_NO_0X_HDR_CONTAINER_CONCEPTS
# define BOOST_NO_0X_HDR_FORWARD_LIST
# define BOOST_NO_0X_HDR_FUTURE
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
# define BOOST_NO_0X_HDR_ITERATOR_CONCEPTS
# define BOOST_NO_0X_HDR_MEMORY_CONCEPTS
# define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RANDOM
# define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_REGEX
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
# define BOOST_NO_0X_HDR_THREAD
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_0X_HDR_TYPE_TRAITS
# define BOOST_NO_0X_HDR_TYPEINDEX
# define BOOST_NO_STD_UNORDERED // deprecated; see following
# define BOOST_NO_0X_HDR_UNORDERED_MAP
# define BOOST_NO_0X_HDR_UNORDERED_SET
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
#define BOOST_STDLIB "Visual Age default standard library"

View File

@@ -1,22 +1,21 @@
// Boost config.hpp configuration header file ------------------------------//
// Copyright (c) 2001-2003 John Maddock
// Copyright (c) 2001 Darin Adler
// Copyright (c) 2001 Peter Dimov
// Copyright (c) 2002 Bill Kempf
// Copyright (c) 2002 Jens Maurer
// Copyright (c) 2002-2003 David Abrahams
// Copyright (c) 2003 Gennaro Prota
// Copyright (c) 2003 Eric Friedman
// Copyright (c) 2010 Eric Jourdanneau, Joel Falcou
// 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)
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Darin Adler 2001.
// (C) Copyright Peter Dimov 2001.
// (C) Copyright Bill Kempf 2002.
// (C) Copyright Jens Maurer 2002.
// (C) Copyright David Abrahams 2002 - 2003.
// (C) Copyright Gennaro Prota 2003.
// (C) Copyright Eric Friedman 2003.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org/ for most recent version.
// See http://www.boost.org for most recent version.
// Boost config.hpp policy and rationale documentation has been moved to
// http://www.boost.org/libs/config/
// http://www.boost.org/libs/config
//
// This file is intended to be stable, and relatively unchanging.
// It should contain boilerplate code only - no compiler specific
@@ -25,41 +24,24 @@
#ifndef BOOST_CONFIG_SUFFIX_HPP
#define BOOST_CONFIG_SUFFIX_HPP
#if defined(__GNUC__) && (__GNUC__ >= 4)
//
// Some GCC-4.x versions issue warnings even when __extension__ is used,
// so use this as a workaround:
//
#pragma GCC system_header
#endif
//
// ensure that visibility macros are always defined, thus symplifying use
//
#ifndef BOOST_SYMBOL_EXPORT
# define BOOST_SYMBOL_EXPORT
#endif
#ifndef BOOST_SYMBOL_IMPORT
# define BOOST_SYMBOL_IMPORT
#endif
#ifndef BOOST_SYMBOL_VISIBLE
# define BOOST_SYMBOL_VISIBLE
#endif
//
// look for long long by looking for the appropriate macros in <limits.h>.
// Note that we use limits.h rather than climits for maximal portability,
// remember that since these just declare a bunch of macros, there should be
// no namespace issues from this.
//
#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_LONG_LONG) \
&& !defined(BOOST_MSVC) && !defined(__BORLANDC__)
# include <limits.h>
# if (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
# define BOOST_HAS_LONG_LONG
# else
# define BOOST_NO_LONG_LONG
# endif
#include <limits.h>
# if !defined(BOOST_HAS_LONG_LONG) \
&& !defined(BOOST_MSVC) && !defined(__BORLANDC__) \
&& (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
# define BOOST_HAS_LONG_LONG
#endif
// TODO: Remove the following lines after the 1.33 release because the presence
// of an integral 64 bit type has nothing to do with support for long long.
#if !defined(BOOST_HAS_LONG_LONG) && !defined(BOOST_NO_INTEGRAL_INT64_T) && !defined(__DECCXX_VER)
# define BOOST_NO_INTEGRAL_INT64_T
#endif
// GCC 3.x will clean up all of those nasty macro definitions that
@@ -69,6 +51,7 @@
# undef BOOST_NO_CTYPE_FUNCTIONS
#endif
//
// Assume any extensions are in namespace std:: unless stated otherwise:
//
@@ -103,13 +86,6 @@
# define BOOST_NO_LONG_LONG_NUMERIC_LIMITS
#endif
//
// Normalize BOOST_NO_STATIC_ASSERT and (depricated) BOOST_HAS_STATIC_ASSERT:
//
#if !defined(BOOST_NO_STATIC_ASSERT) && !defined(BOOST_HAS_STATIC_ASSERT)
# define BOOST_HAS_STATIC_ASSERT
#endif
//
// if there is no __int64 then there is no specialisation
// for numeric_limits<__int64> either:
@@ -151,15 +127,6 @@
# define BOOST_NO_STD_ITERATOR_TRAITS
# endif
//
// Without partial specialization, partial
// specialization with default args won't work either:
//
# if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
&& !defined(BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS)
# define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
# endif
//
// Without member template support, we can't have template constructors
// in the standard library either:
@@ -187,13 +154,6 @@
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
#endif
//
// Without typeid support we have no dynamic RTTI either:
//
#if defined(BOOST_NO_TYPEID) && !defined(BOOST_NO_RTTI)
# define BOOST_NO_RTTI
#endif
//
// If we have a standard allocator, then we have a partial one as well:
//
@@ -253,8 +213,7 @@
// from here then add to the appropriate compiler section):
//
#if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \
|| defined(_PTHREADS) || defined(__APPLE__) || defined(__DragonFly__)) \
&& !defined(BOOST_HAS_THREADS)
|| defined(_PTHREADS)) && !defined(BOOST_HAS_THREADS)
# define BOOST_HAS_THREADS
#endif
@@ -280,8 +239,6 @@
#ifndef BOOST_HAS_THREADS
# undef BOOST_HAS_PTHREADS
# undef BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# undef BOOST_HAS_PTHREAD_YIELD
# undef BOOST_HAS_PTHREAD_DELAY_NP
# undef BOOST_HAS_WINTHREADS
# undef BOOST_HAS_BETHREADS
# undef BOOST_HAS_MPTASKS
@@ -293,62 +250,20 @@
//
# if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901)
# define BOOST_HAS_STDINT_H
# ifndef BOOST_HAS_LOG1P
# define BOOST_HAS_LOG1P
# endif
# ifndef BOOST_HAS_EXPM1
# define BOOST_HAS_EXPM1
# endif
# endif
//
// Define BOOST_NO_SLIST and BOOST_NO_HASH if required.
// Note that this is for backwards compatibility only.
//
# if !defined(BOOST_HAS_SLIST) && !defined(BOOST_NO_SLIST)
# ifndef BOOST_HAS_SLIST
# define BOOST_NO_SLIST
# endif
# if !defined(BOOST_HAS_HASH) && !defined(BOOST_NO_HASH)
# ifndef BOOST_HAS_HASH
# define BOOST_NO_HASH
# endif
//
// Set BOOST_SLIST_HEADER if not set already:
//
#if defined(BOOST_HAS_SLIST) && !defined(BOOST_SLIST_HEADER)
# define BOOST_SLIST_HEADER <slist>
#endif
//
// Set BOOST_HASH_SET_HEADER if not set already:
//
#if defined(BOOST_HAS_HASH) && !defined(BOOST_HASH_SET_HEADER)
# define BOOST_HASH_SET_HEADER <hash_set>
#endif
//
// Set BOOST_HASH_MAP_HEADER if not set already:
//
#if defined(BOOST_HAS_HASH) && !defined(BOOST_HASH_MAP_HEADER)
# define BOOST_HASH_MAP_HEADER <hash_map>
#endif
//
// Set BOOST_NO_INITIALIZER_LISTS if there is no library support.
//
#if defined(BOOST_NO_0X_HDR_INITIALIZER_LIST) && !defined(BOOST_NO_INITIALIZER_LISTS)
# define BOOST_NO_INITIALIZER_LISTS
#endif
//
// Set BOOST_HAS_RVALUE_REFS when BOOST_NO_RVALUE_REFERENCES is not defined
//
#if !defined(BOOST_NO_RVALUE_REFERENCES) && !defined(BOOST_HAS_RVALUE_REFS)
#define BOOST_HAS_RVALUE_REFS
#endif
// BOOST_HAS_ABI_HEADERS
// This macro gets set if we have headers that fix the ABI,
// and prevent ODR violations when linking to external libraries:
@@ -426,7 +341,7 @@ namespace std {
// with
// BOOST_USE_FACET(Type, loc);
// Note do not add a std:: prefix to the front of BOOST_USE_FACET!
// Use for BOOST_HAS_FACET is analogous.
// Use for BOOST_HAS_FACET is analagous.
#if defined(BOOST_NO_STD_USE_FACET)
# ifdef BOOST_HAS_TWO_ARG_USE_FACET
@@ -488,12 +403,6 @@ namespace std {
# define BOOST_DEDUCED_TYPENAME
#endif
#ifndef BOOST_NO_TYPENAME_WITH_CTOR
# define BOOST_CTOR_TYPENAME typename
#else
# define BOOST_CTOR_TYPENAME
#endif
// long long workaround ------------------------------------------//
// On gcc (and maybe other compilers?) long long is alway supported
// but it's use may generate either warnings (with -ansi), or errors
@@ -513,11 +422,12 @@ namespace boost{
// BOOST_[APPEND_]EXPLICIT_TEMPLATE_[NON_]TYPE macros --------------------------//
//
// Some compilers have problems with function templates whose template
// parameters don't appear in the function parameter list (basically
// they just link one instantiation of the template in the final
// executable). These macros provide a uniform way to cope with the
// problem with no effects on the calling syntax.
// Some compilers have problems with function templates whose
// template parameters don't appear in the function parameter
// list (basically they just link one instantiation of the
// template in the final executable). These macros provide a
// uniform way to cope with the problem with no effects on the
// calling syntax.
// Example:
//
@@ -558,18 +468,18 @@ namespace boost{
# include "boost/type.hpp"
# include "boost/non_type.hpp"
# define BOOST_EXPLICIT_TEMPLATE_TYPE(t) boost::type<t>* = 0
# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) boost::type<t>*
# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) boost::non_type<t, v>* = 0
# define BOOST_EXPLICIT_TEMPLATE_TYPE(t) boost::type<t>* = 0
# define BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t) boost::type<t>*
# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v) boost::non_type<t, v>* = 0
# define BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) boost::non_type<t, v>*
# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t) \
# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE(t) \
, BOOST_EXPLICIT_TEMPLATE_TYPE(t)
# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t) \
# define BOOST_APPEND_EXPLICIT_TEMPLATE_TYPE_SPEC(t) \
, BOOST_EXPLICIT_TEMPLATE_TYPE_SPEC(t)
# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) \
# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE(t, v) \
, BOOST_EXPLICIT_TEMPLATE_NON_TYPE(t, v)
# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) \
# define BOOST_APPEND_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v) \
, BOOST_EXPLICIT_TEMPLATE_NON_TYPE_SPEC(t, v)
#else
@@ -589,12 +499,6 @@ namespace boost{
#endif // defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
// When BOOST_NO_STD_TYPEINFO is defined, we can just import
// the global definition into std namespace:
#ifdef BOOST_NO_STD_TYPEINFO
#include <typeinfo>
namespace std{ using ::typeinfo; }
#endif
// ---------------------------------------------------------------------------//
@@ -637,11 +541,7 @@ namespace std{ using ::typeinfo; }
# endif
# endif
//
// Set some default values GPU support
//
# ifndef BOOST_GPU_ENABLED
# define BOOST_GPU_ENABLED
# endif
#endif

View File

@@ -1,47 +0,0 @@
// Copyright John Maddock 2008
// Use, modification, and distribution is subject to 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)
//
// This file exists to turn off some overly-pedantic warning emitted
// by certain compilers. You should include this header only in:
//
// * A test case, before any other headers, or,
// * A library source file before any other headers.
//
// IT SHOULD NOT BE INCLUDED BY ANY BOOST HEADER.
//
// YOU SHOULD NOT INCLUDE IT IF YOU CAN REASONABLY FIX THE WARNING.
//
// The only warnings disabled here are those that are:
//
// * Quite unreasonably pedantic.
// * Generally only emitted by a single compiler.
// * Can't easily be fixed: for example if the vendors own std lib
// code emits these warnings!
//
// Note that THIS HEADER MUST NOT INCLUDE ANY OTHER HEADERS:
// not even std library ones! Doing so may turn the warning
// off too late to be of any use. For example the VC++ C4996
// warning can be omitted from <iosfwd> if that header is included
// before or by this one :-(
//
#ifndef BOOST_CONFIG_WARNING_DISABLE_HPP
#define BOOST_CONFIG_WARNING_DISABLE_HPP
#if defined(_MSC_VER) && (_MSC_VER >= 1400)
// Error 'function': was declared deprecated
// http://msdn2.microsoft.com/en-us/library/ttcz0bys(VS.80).aspx
// This error is emitted when you use some perfectly conforming
// std lib functions in a perfectly correct way, and also by
// some of Microsoft's own std lib code !
# pragma warning(disable:4996)
#endif
#if defined(__INTEL_COMPILER) || defined(__ICL)
// As above: gives warning when a "deprecated"
// std library function is encountered.
# pragma warning(disable:1786)
#endif
#endif // BOOST_CONFIG_WARNING_DISABLE_HPP

View File

@@ -1,7 +1,3 @@
// Copyright 2001 John Maddock
// 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)
/*
* Copyright (c) 1997
* Silicon Graphics Computer Systems, Inc.

View File

@@ -9,8 +9,7 @@
//
// Usage:
//
// #if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
// // workaround for eVC4 and VC6
// #if BOOST_WORKAROUND(BOOST_MSVC, <= 1200)
// ... // workaround code here
// #endif
//
@@ -18,7 +17,7 @@
// first argument must be undefined or expand to a numeric
// value. The above expands to:
//
// (BOOST_MSVC) != 0 && (BOOST_MSVC) < 1300
// (BOOST_MSVC) != 0 && (BOOST_MSVC) <= 1200
//
// When used for workarounds that apply to the latest known version
// and all earlier versions of a compiler, the following convention
@@ -38,201 +37,8 @@
# ifndef BOOST_STRICT_CONFIG
#include <boost/config.hpp>
#ifndef __BORLANDC__
#define __BORLANDC___WORKAROUND_GUARD 1
#else
#define __BORLANDC___WORKAROUND_GUARD 0
#endif
#ifndef __CODEGEARC__
#define __CODEGEARC___WORKAROUND_GUARD 1
#else
#define __CODEGEARC___WORKAROUND_GUARD 0
#endif
#ifndef _MSC_VER
#define _MSC_VER_WORKAROUND_GUARD 1
#else
#define _MSC_VER_WORKAROUND_GUARD 0
#endif
#ifndef _MSC_FULL_VER
#define _MSC_FULL_VER_WORKAROUND_GUARD 1
#else
#define _MSC_FULL_VER_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_MSVC
#define BOOST_MSVC_WORKAROUND_GUARD 1
#else
#define BOOST_MSVC_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_MSVC_FULL_VER
#define BOOST_MSVC_FULL_VER_WORKAROUND_GUARD 1
#else
#define BOOST_MSVC_FULL_VER_WORKAROUND_GUARD 0
#endif
#ifndef __GNUC__
#define __GNUC___WORKAROUND_GUARD 1
#else
#define __GNUC___WORKAROUND_GUARD 0
#endif
#ifndef __GNUC_MINOR__
#define __GNUC_MINOR___WORKAROUND_GUARD 1
#else
#define __GNUC_MINOR___WORKAROUND_GUARD 0
#endif
#ifndef __GNUC_PATCHLEVEL__
#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 1
#else
#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 0
#endif
#ifndef __IBMCPP__
#define __IBMCPP___WORKAROUND_GUARD 1
#else
#define __IBMCPP___WORKAROUND_GUARD 0
#endif
#ifndef __SUNPRO_CC
#define __SUNPRO_CC_WORKAROUND_GUARD 1
#else
#define __SUNPRO_CC_WORKAROUND_GUARD 0
#endif
#ifndef __DECCXX_VER
#define __DECCXX_VER_WORKAROUND_GUARD 1
#else
#define __DECCXX_VER_WORKAROUND_GUARD 0
#endif
#ifndef __MWERKS__
#define __MWERKS___WORKAROUND_GUARD 1
#else
#define __MWERKS___WORKAROUND_GUARD 0
#endif
#ifndef __EDG__
#define __EDG___WORKAROUND_GUARD 1
#else
#define __EDG___WORKAROUND_GUARD 0
#endif
#ifndef __EDG_VERSION__
#define __EDG_VERSION___WORKAROUND_GUARD 1
#else
#define __EDG_VERSION___WORKAROUND_GUARD 0
#endif
#ifndef __HP_aCC
#define __HP_aCC_WORKAROUND_GUARD 1
#else
#define __HP_aCC_WORKAROUND_GUARD 0
#endif
#ifndef __hpxstd98
#define __hpxstd98_WORKAROUND_GUARD 1
#else
#define __hpxstd98_WORKAROUND_GUARD 0
#endif
#ifndef _CRAYC
#define _CRAYC_WORKAROUND_GUARD 1
#else
#define _CRAYC_WORKAROUND_GUARD 0
#endif
#ifndef __DMC__
#define __DMC___WORKAROUND_GUARD 1
#else
#define __DMC___WORKAROUND_GUARD 0
#endif
#ifndef MPW_CPLUS
#define MPW_CPLUS_WORKAROUND_GUARD 1
#else
#define MPW_CPLUS_WORKAROUND_GUARD 0
#endif
#ifndef __COMO__
#define __COMO___WORKAROUND_GUARD 1
#else
#define __COMO___WORKAROUND_GUARD 0
#endif
#ifndef __COMO_VERSION__
#define __COMO_VERSION___WORKAROUND_GUARD 1
#else
#define __COMO_VERSION___WORKAROUND_GUARD 0
#endif
#ifndef __INTEL_COMPILER
#define __INTEL_COMPILER_WORKAROUND_GUARD 1
#else
#define __INTEL_COMPILER_WORKAROUND_GUARD 0
#endif
#ifndef __ICL
#define __ICL_WORKAROUND_GUARD 1
#else
#define __ICL_WORKAROUND_GUARD 0
#endif
#ifndef _COMPILER_VERSION
#define _COMPILER_VERSION_WORKAROUND_GUARD 1
#else
#define _COMPILER_VERSION_WORKAROUND_GUARD 0
#endif
#ifndef _RWSTD_VER
#define _RWSTD_VER_WORKAROUND_GUARD 1
#else
#define _RWSTD_VER_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_RWSTD_VER
#define BOOST_RWSTD_VER_WORKAROUND_GUARD 1
#else
#define BOOST_RWSTD_VER_WORKAROUND_GUARD 0
#endif
#ifndef __GLIBCPP__
#define __GLIBCPP___WORKAROUND_GUARD 1
#else
#define __GLIBCPP___WORKAROUND_GUARD 0
#endif
#ifndef _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC
#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 1
#else
#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 0
#endif
#ifndef __SGI_STL_PORT
#define __SGI_STL_PORT_WORKAROUND_GUARD 1
#else
#define __SGI_STL_PORT_WORKAROUND_GUARD 0
#endif
#ifndef _STLPORT_VERSION
#define _STLPORT_VERSION_WORKAROUND_GUARD 1
#else
#define _STLPORT_VERSION_WORKAROUND_GUARD 0
#endif
#ifndef __LIBCOMO_VERSION__
#define __LIBCOMO_VERSION___WORKAROUND_GUARD 1
#else
#define __LIBCOMO_VERSION___WORKAROUND_GUARD 0
#endif
#ifndef _CPPLIB_VER
#define _CPPLIB_VER_WORKAROUND_GUARD 1
#else
#define _CPPLIB_VER_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_INTEL_CXX_VERSION
#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 1
#else
#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_INTEL_WIN
#define BOOST_INTEL_WIN_WORKAROUND_GUARD 1
#else
#define BOOST_INTEL_WIN_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_DINKUMWARE_STDLIB
#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 1
#else
#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 0
#endif
#ifndef BOOST_INTEL
#define BOOST_INTEL_WORKAROUND_GUARD 1
#else
#define BOOST_INTEL_WORKAROUND_GUARD 0
#endif
// Always define to zero, if it's used it'll be defined my MPL:
#define BOOST_MPL_CFG_GCC_WORKAROUND_GUARD 0
# define BOOST_WORKAROUND(symbol, test) \
((symbol ## _WORKAROUND_GUARD + 0 == 0) && \
(symbol != 0) && (1 % (( (symbol test) ) + 1)))
((symbol != 0) && (1 % (( (symbol test) ) + 1)))
// ^ ^ ^ ^
// The extra level of parenthesis nesting above, along with the
// BOOST_OPEN_PAREN indirection below, is required to satisfy the

View File

@@ -6,7 +6,7 @@
//
// use this header as a workaround for missing <limits>
// See http://www.boost.org/libs/compatibility/index.html for documentation.
// See http://www.boost.org/libs/utility/limits.html for documentation.
#ifndef BOOST_LIMITS
#define BOOST_LIMITS
@@ -30,8 +30,6 @@
# define BOOST_ULLT ::boost::ulong_long_type
#endif
#include <climits> // for CHAR_BIT
namespace std
{
template<>
@@ -78,8 +76,8 @@ namespace std
static BOOST_LLT denorm_min() throw() { return 0; };
BOOST_STATIC_CONSTANT(bool, is_iec559 = false);
BOOST_STATIC_CONSTANT(bool, is_bounded = true);
BOOST_STATIC_CONSTANT(bool, is_modulo = true);
BOOST_STATIC_CONSTANT(bool, is_bounded = false);
BOOST_STATIC_CONSTANT(bool, is_modulo = false);
BOOST_STATIC_CONSTANT(bool, traps = false);
BOOST_STATIC_CONSTANT(bool, tinyness_before = false);
@@ -131,8 +129,8 @@ namespace std
static BOOST_ULLT denorm_min() throw() { return 0; };
BOOST_STATIC_CONSTANT(bool, is_iec559 = false);
BOOST_STATIC_CONSTANT(bool, is_bounded = true);
BOOST_STATIC_CONSTANT(bool, is_modulo = true);
BOOST_STATIC_CONSTANT(bool, is_bounded = false);
BOOST_STATIC_CONSTANT(bool, is_modulo = false);
BOOST_STATIC_CONSTANT(bool, traps = false);
BOOST_STATIC_CONSTANT(bool, tinyness_before = false);
@@ -143,4 +141,3 @@ namespace std
#endif
#endif

View File

@@ -15,21 +15,19 @@
// will cause a recompile every time a new boost version is
// released.
//
// BOOST_VERSION % 100 is the patch level
// BOOST_VERSION % 100 is the sub-minor version
// BOOST_VERSION / 100 % 1000 is the minor version
// BOOST_VERSION / 100000 is the major version
#define BOOST_VERSION 104500
#define BOOST_VERSION 103300
//
// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
// but as a *string* in the form "x_y[_z]" where x is the major version
// number, y is the minor version number, and z is the patch level if not 0.
// This is used by <config/auto_link.hpp> to select which library version to link to.
// but as a *string* in the form "x_y" where x is the major version
// number and y is the minor version number. This is used by
// <config/auto_link.hpp> to select which library version to link to.
#define BOOST_LIB_VERSION "1_45"
#define BOOST_LIB_VERSION "1_33"
#endif

1524
index.html

File diff suppressed because it is too large Load Diff

269
test/Jamfile Normal file
View File

@@ -0,0 +1,269 @@
#
# Regression test Jamfile for boost configuration setup.
# *** DO NOT EDIT THIS FILE BY HAND ***
# This file was automatically generated on Fri Dec 17 11:13:11 2004
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
#
# If you need to alter build preferences then set them in
# the template defined in options.jam.
#
subproject libs/config/test ;
# bring in the rules for testing
import testing ./options ;
run config_info.cpp <template>config_options ;
run config_test.cpp <template>config_options ;
run limits_test.cpp <template>config_test_options ;
run abi/abi_test.cpp abi/main.cpp <template>config_options ;
test-suite "BOOST_HAS_TWO_ARG_USE_FACET" :
[ run has_2arg_use_facet_pass.cpp <template>config_options ]
[ compile-fail has_2arg_use_facet_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_BETHREADS" :
[ run has_bethreads_pass.cpp <template>config_options ]
[ compile-fail has_bethreads_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_CLOCK_GETTIME" :
[ run has_clock_gettime_pass.cpp <template>config_options ]
[ compile-fail has_clock_gettime_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_DIRENT_H" :
[ run has_dirent_h_pass.cpp <template>config_options ]
[ compile-fail has_dirent_h_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_FTIME" :
[ run has_ftime_pass.cpp <template>config_options ]
[ compile-fail has_ftime_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_GETTIMEOFDAY" :
[ run has_gettimeofday_pass.cpp <template>config_options ]
[ compile-fail has_gettimeofday_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_HASH" :
[ run has_hash_pass.cpp <template>config_options ]
[ compile-fail has_hash_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_LONG_LONG" :
[ run has_long_long_pass.cpp <template>config_options ]
[ compile-fail has_long_long_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_MACRO_USE_FACET" :
[ run has_macro_use_facet_pass.cpp <template>config_options ]
[ compile-fail has_macro_use_facet_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_MS_INT64" :
[ run has_ms_int64_pass.cpp <template>config_options ]
[ compile-fail has_ms_int64_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_NANOSLEEP" :
[ run has_nanosleep_pass.cpp <template>config_options ]
[ compile-fail has_nanosleep_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_NL_TYPES_H" :
[ run has_nl_types_h_pass.cpp <template>config_options ]
[ compile-fail has_nl_types_h_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_NRVO" :
[ run has_nrvo_pass.cpp <template>config_options ]
[ compile-fail has_nrvo_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_PARTIAL_STD_ALLOCATOR" :
[ run has_part_alloc_pass.cpp <template>config_options ]
[ compile-fail has_part_alloc_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_PTHREADS" :
[ run has_pthreads_pass.cpp <template>config_options ]
[ compile-fail has_pthreads_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_PTHREAD_DELAY_NP" :
[ run has_pthread_delay_np_pass.cpp <template>config_options ]
[ compile-fail has_pthread_delay_np_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE" :
[ run has_pthread_ma_st_pass.cpp <template>config_options ]
[ compile-fail has_pthread_ma_st_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_PTHREAD_YIELD" :
[ run has_pthread_yield_pass.cpp <template>config_options ]
[ compile-fail has_pthread_yield_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_SCHED_YIELD" :
[ run has_sched_yield_pass.cpp <template>config_options ]
[ compile-fail has_sched_yield_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_SGI_TYPE_TRAITS" :
[ run has_sgi_type_traits_pass.cpp <template>config_options ]
[ compile-fail has_sgi_type_traits_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_SIGACTION" :
[ run has_sigaction_pass.cpp <template>config_options ]
[ compile-fail has_sigaction_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_SLIST" :
[ run has_slist_pass.cpp <template>config_options ]
[ compile-fail has_slist_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_STDINT_H" :
[ run has_stdint_h_pass.cpp <template>config_options ]
[ compile-fail has_stdint_h_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_STLP_USE_FACET" :
[ run has_stlp_use_facet_pass.cpp <template>config_options ]
[ compile-fail has_stlp_use_facet_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_UNISTD_H" :
[ run has_unistd_h_pass.cpp <template>config_options ]
[ compile-fail has_unistd_h_fail.cpp <template>config_options ] ;
test-suite "BOOST_MSVC6_MEMBER_TEMPLATES" :
[ run has_vc6_mem_templ_pass.cpp <template>config_options ]
[ compile-fail has_vc6_mem_templ_fail.cpp <template>config_options ] ;
test-suite "BOOST_MSVC_STD_ITERATOR" :
[ run has_vc_iterator_pass.cpp <template>config_options ]
[ compile-fail has_vc_iterator_fail.cpp <template>config_options ] ;
test-suite "BOOST_HAS_WINTHREADS" :
[ run has_winthreads_pass.cpp <template>config_options ]
[ compile-fail has_winthreads_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP" :
[ run no_arg_dep_lookup_pass.cpp <template>config_options ]
[ compile-fail no_arg_dep_lookup_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS" :
[ run no_array_type_spec_pass.cpp <template>config_options ]
[ compile-fail no_array_type_spec_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_AUTO_PTR" :
[ run no_auto_ptr_pass.cpp <template>config_options ]
[ compile-fail no_auto_ptr_fail.cpp <template>config_options ] ;
test-suite "BOOST_BCB_PARTIAL_SPECIALIZATION_BUG" :
[ run no_bcb_partial_spec_pass.cpp <template>config_options ]
[ compile-fail no_bcb_partial_spec_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_CTYPE_FUNCTIONS" :
[ run no_ctype_functions_pass.cpp <template>config_options ]
[ compile-fail no_ctype_functions_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_CV_SPECIALIZATIONS" :
[ run no_cv_spec_pass.cpp <template>config_options ]
[ compile-fail no_cv_spec_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_CV_VOID_SPECIALIZATIONS" :
[ run no_cv_void_spec_pass.cpp <template>config_options ]
[ compile-fail no_cv_void_spec_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_CWCHAR" :
[ run no_cwchar_pass.cpp <template>config_options ]
[ compile-fail no_cwchar_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_CWCTYPE" :
[ run no_cwctype_pass.cpp <template>config_options ]
[ compile-fail no_cwctype_fail.cpp <template>config_options ] ;
test-suite "BOOST_DEDUCED_TYPENAME" :
[ run no_ded_typename_pass.cpp <template>config_options ]
[ compile-fail no_ded_typename_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_DEPENDENT_NESTED_DERIVATIONS" :
[ run no_dep_nested_class_pass.cpp <template>config_options ]
[ compile-fail no_dep_nested_class_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS" :
[ run no_dep_val_param_pass.cpp <template>config_options ]
[ compile-fail no_dep_val_param_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_EXCEPTIONS" :
[ run no_exceptions_pass.cpp <template>config_options ]
[ compile-fail no_exceptions_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_EXCEPTION_STD_NAMESPACE" :
[ run no_excep_std_pass.cpp <template>config_options ]
[ compile-fail no_excep_std_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS" :
[ run no_exp_func_tem_arg_pass.cpp <template>config_options ]
[ compile-fail no_exp_func_tem_arg_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_FUNCTION_TEMPLATE_ORDERING" :
[ run no_func_tmp_order_pass.cpp <template>config_options ]
[ compile-fail no_func_tmp_order_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_MS_INT64_NUMERIC_LIMITS" :
[ run no_i64_limits_pass.cpp <template>config_options ]
[ compile-fail no_i64_limits_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_INCLASS_MEMBER_INITIALIZATION" :
[ run no_inline_memb_init_pass.cpp <template>config_options ]
[ compile-fail no_inline_memb_init_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_INTEGRAL_INT64_T" :
[ run no_integral_int64_t_pass.cpp <template>config_options ]
[ compile-fail no_integral_int64_t_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_IS_ABSTRACT" :
[ run no_is_abstract_pass.cpp <template>config_options ]
[ compile-fail no_is_abstract_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS" :
[ run no_iter_construct_pass.cpp <template>config_options ]
[ compile-fail no_iter_construct_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_LIMITS" :
[ run no_limits_pass.cpp <template>config_options ]
[ compile-fail no_limits_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS" :
[ run no_limits_const_exp_pass.cpp <template>config_options ]
[ compile-fail no_limits_const_exp_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_LONG_LONG_NUMERIC_LIMITS" :
[ run no_ll_limits_pass.cpp <template>config_options ]
[ compile-fail no_ll_limits_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS" :
[ run no_mem_func_spec_pass.cpp <template>config_options ]
[ compile-fail no_mem_func_spec_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_MEMBER_TEMPLATES" :
[ run no_mem_templates_pass.cpp <template>config_options ]
[ compile-fail no_mem_templates_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_MEMBER_TEMPLATE_FRIENDS" :
[ run no_mem_templ_frnds_pass.cpp <template>config_options ]
[ compile-fail no_mem_templ_frnds_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_MEMBER_TEMPLATE_KEYWORD" :
[ run no_mem_tem_keyword_pass.cpp <template>config_options ]
[ compile-fail no_mem_tem_keyword_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS" :
[ run no_mem_tem_pnts_pass.cpp <template>config_options ]
[ compile-fail no_mem_tem_pnts_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_OPERATORS_IN_NAMESPACE" :
[ run no_ops_in_namespace_pass.cpp <template>config_options ]
[ compile-fail no_ops_in_namespace_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION" :
[ run no_partial_spec_pass.cpp <template>config_options ]
[ compile-fail no_partial_spec_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_PRIVATE_IN_AGGREGATE" :
[ run no_priv_aggregate_pass.cpp <template>config_options ]
[ compile-fail no_priv_aggregate_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_POINTER_TO_MEMBER_CONST" :
[ run no_ptr_mem_const_pass.cpp <template>config_options ]
[ compile-fail no_ptr_mem_const_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_UNREACHABLE_RETURN_DETECTION" :
[ run no_ret_det_pass.cpp <template>config_options ]
[ compile-fail no_ret_det_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_SFINAE" :
[ run no_sfinae_pass.cpp <template>config_options ]
[ compile-fail no_sfinae_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_STRINGSTREAM" :
[ run no_sstream_pass.cpp <template>config_options ]
[ compile-fail no_sstream_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_STDC_NAMESPACE" :
[ run no_stdc_namespace_pass.cpp <template>config_options ]
[ compile-fail no_stdc_namespace_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_STD_ALLOCATOR" :
[ run no_std_allocator_pass.cpp <template>config_options ]
[ compile-fail no_std_allocator_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_STD_DISTANCE" :
[ run no_std_distance_pass.cpp <template>config_options ]
[ compile-fail no_std_distance_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_STD_ITERATOR" :
[ run no_std_iterator_pass.cpp <template>config_options ]
[ compile-fail no_std_iterator_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_STD_ITERATOR_TRAITS" :
[ run no_std_iter_traits_pass.cpp <template>config_options ]
[ compile-fail no_std_iter_traits_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_STD_LOCALE" :
[ run no_std_locale_pass.cpp <template>config_options ]
[ compile-fail no_std_locale_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_STD_MESSAGES" :
[ run no_std_messages_pass.cpp <template>config_options ]
[ compile-fail no_std_messages_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_STD_MIN_MAX" :
[ run no_std_min_max_pass.cpp <template>config_options ]
[ compile-fail no_std_min_max_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN" :
[ run no_std_oi_assign_pass.cpp <template>config_options ]
[ compile-fail no_std_oi_assign_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_STD_USE_FACET" :
[ run no_std_use_facet_pass.cpp <template>config_options ]
[ compile-fail no_std_use_facet_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_STD_WSTREAMBUF" :
[ run no_std_wstreambuf_pass.cpp <template>config_options ]
[ compile-fail no_std_wstreambuf_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_STD_WSTRING" :
[ run no_std_wstring_pass.cpp <template>config_options ]
[ compile-fail no_std_wstring_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_SWPRINTF" :
[ run no_swprintf_pass.cpp <template>config_options ]
[ compile-fail no_swprintf_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_TEMPLATE_TEMPLATES" :
[ run no_template_template_pass.cpp <template>config_options ]
[ compile-fail no_template_template_fail.cpp <template>config_options ] ;
test-suite "BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL" :
[ run no_using_breaks_adl_pass.cpp <template>config_options ]
[ compile-fail no_using_breaks_adl_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE" :
[ run no_using_decl_overld_pass.cpp <template>config_options ]
[ compile-fail no_using_decl_overld_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_USING_TEMPLATE" :
[ run no_using_template_pass.cpp <template>config_options ]
[ compile-fail no_using_template_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_VOID_RETURNS" :
[ run no_void_returns_pass.cpp <template>config_options ]
[ compile-fail no_void_returns_fail.cpp <template>config_options ] ;
test-suite "BOOST_NO_INTRINSIC_WCHAR_T" :
[ run no_wchar_t_pass.cpp <template>config_options ]
[ compile-fail no_wchar_t_fail.cpp <template>config_options ] ;

View File

@@ -1,61 +0,0 @@
#
# Copyright John Maddock 2008.
# Use, modification and distribution are subject to 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)
#
# If you need to alter build preferences then set them in
# the template defined in options_v2.jam.
#
import modules ;
local is_unix = [ modules.peek : UNIX ] ;
if $(is_unix)
{
local osname = [ SHELL uname ] ;
switch $(osname)
{
case "Sun*" : OTHERFLAGS = "-lpthread -lrt" ;
case "*BSD*" : OTHERFLAGS = "-lpthread" ;
}
}
test-suite config
:
[ run config_test.cpp
: #args
: #input-files
: #requirements
<threading>multi
: config_test_threaded
]
[ run config_test.cpp
: #args
: #input-files
: #requirements
<threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static
<target-os>linux:<linkflags>-lpthread
<target-os>linux:<linkflags>-lrt
<toolset>gcc:<linkflags>$(OTHERFLAGS)
]
[ run config_info.cpp : : : <test-info>always_show_run_output <threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static ]
[ run config_info.cpp : : : <test-info>always_show_run_output <threading>multi : config_info_threaded ]
[ run math_info.cpp : : : <test-info>always_show_run_output <toolset>borland:<runtime-link>static <toolset>borland:<link>static ]
[ run abi/abi_test.cpp abi/main.cpp ]
[ run limits_test.cpp ../../test/build//boost_test_exec_monitor ]
[ run link/main.cpp link//link_test
: #args
: #input-files
: #requirements
<runtime-link>shared
<define>BOOST_DYN_LINK=1
<define>BOOST_CONFIG_NO_LIB=1
:
config_link_test
]
[ compile-fail threads/test_thread_fail1.cpp ]
[ compile-fail threads/test_thread_fail2.cpp ]
;

View File

@@ -1,529 +0,0 @@
#
# Regression test Jamfile for boost configuration setup.
# *** DO NOT EDIT THIS FILE BY HAND ***
# This file was automatically generated on Sat Sep 25 16:53:42 2010
# by libs/config/tools/generate.cpp
# Copyright John Maddock.
# Use, modification and distribution are subject to 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)
#
# If you need to alter build preferences then set them in
# the template defined in options_v2.jam.
#
path-constant DOT : . ;
include $(DOT)/options_v2.jam ;
run ../config_info.cpp : : : <threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static ;
run ../config_info.cpp : : : <threading>multi : config_info_threaded ;
run ../math_info.cpp : : : <toolset>borland:<runtime-link>static <toolset>borland:<link>static ;
run ../config_test.cpp : : : <threading>single <toolset>msvc:<runtime-link>static <toolset>msvc:<link>static ;
run ../config_test.cpp : : : <threading>multi : config_test_threaded ;
run ../limits_test.cpp ../../../test/build//boost_test_exec_monitor ;
run ../abi/abi_test.cpp ../abi/main.cpp ;
test-suite "BOOST_HAS_TWO_ARG_USE_FACET" :
[ run ../has_2arg_use_facet_pass.cpp ]
[ compile-fail ../has_2arg_use_facet_fail.cpp ] ;
test-suite "BOOST_HAS_BETHREADS" :
[ run ../has_bethreads_pass.cpp ]
[ compile-fail ../has_bethreads_fail.cpp ] ;
test-suite "BOOST_HAS_CLOCK_GETTIME" :
[ run ../has_clock_gettime_pass.cpp ]
[ compile-fail ../has_clock_gettime_fail.cpp ] ;
test-suite "BOOST_HAS_CONCEPTS" :
[ run ../has_concepts_pass.cpp ]
[ compile-fail ../has_concepts_fail.cpp ] ;
test-suite "BOOST_HAS_DIRENT_H" :
[ run ../has_dirent_h_pass.cpp ]
[ compile-fail ../has_dirent_h_fail.cpp ] ;
test-suite "BOOST_HAS_EXPM1" :
[ run ../has_expm1_pass.cpp ]
[ compile-fail ../has_expm1_fail.cpp ] ;
test-suite "BOOST_HAS_FTIME" :
[ run ../has_ftime_pass.cpp ]
[ compile-fail ../has_ftime_fail.cpp ] ;
test-suite "BOOST_HAS_GETTIMEOFDAY" :
[ run ../has_gettimeofday_pass.cpp ]
[ compile-fail ../has_gettimeofday_fail.cpp ] ;
test-suite "BOOST_HAS_HASH" :
[ run ../has_hash_pass.cpp ]
[ compile-fail ../has_hash_fail.cpp ] ;
test-suite "BOOST_HAS_LOG1P" :
[ run ../has_log1p_pass.cpp ]
[ compile-fail ../has_log1p_fail.cpp ] ;
test-suite "BOOST_HAS_LONG_LONG" :
[ run ../has_long_long_pass.cpp ]
[ compile-fail ../has_long_long_fail.cpp ] ;
test-suite "BOOST_HAS_MACRO_USE_FACET" :
[ run ../has_macro_use_facet_pass.cpp ]
[ compile-fail ../has_macro_use_facet_fail.cpp ] ;
test-suite "BOOST_HAS_MS_INT64" :
[ run ../has_ms_int64_pass.cpp ]
[ compile-fail ../has_ms_int64_fail.cpp ] ;
test-suite "BOOST_HAS_NANOSLEEP" :
[ run ../has_nanosleep_pass.cpp ]
[ compile-fail ../has_nanosleep_fail.cpp ] ;
test-suite "BOOST_HAS_NL_TYPES_H" :
[ run ../has_nl_types_h_pass.cpp ]
[ compile-fail ../has_nl_types_h_fail.cpp ] ;
test-suite "BOOST_HAS_NRVO" :
[ run ../has_nrvo_pass.cpp ]
[ compile-fail ../has_nrvo_fail.cpp ] ;
test-suite "BOOST_HAS_PARTIAL_STD_ALLOCATOR" :
[ run ../has_part_alloc_pass.cpp ]
[ compile-fail ../has_part_alloc_fail.cpp ] ;
test-suite "BOOST_HAS_PTHREADS" :
[ run ../has_pthreads_pass.cpp ]
[ compile-fail ../has_pthreads_fail.cpp ] ;
test-suite "BOOST_HAS_PTHREAD_DELAY_NP" :
[ run ../has_pthread_delay_np_pass.cpp ]
[ compile-fail ../has_pthread_delay_np_fail.cpp ] ;
test-suite "BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE" :
[ run ../has_pthread_ma_st_pass.cpp ]
[ compile-fail ../has_pthread_ma_st_fail.cpp ] ;
test-suite "BOOST_HAS_PTHREAD_YIELD" :
[ run ../has_pthread_yield_pass.cpp ]
[ compile-fail ../has_pthread_yield_fail.cpp ] ;
test-suite "BOOST_HAS_RVALUE_REFS" :
[ run ../has_rvalue_refs_pass.cpp ]
[ compile-fail ../has_rvalue_refs_fail.cpp ] ;
test-suite "BOOST_HAS_SCHED_YIELD" :
[ run ../has_sched_yield_pass.cpp ]
[ compile-fail ../has_sched_yield_fail.cpp ] ;
test-suite "BOOST_HAS_SGI_TYPE_TRAITS" :
[ run ../has_sgi_type_traits_pass.cpp ]
[ compile-fail ../has_sgi_type_traits_fail.cpp ] ;
test-suite "BOOST_HAS_SIGACTION" :
[ run ../has_sigaction_pass.cpp ]
[ compile-fail ../has_sigaction_fail.cpp ] ;
test-suite "BOOST_HAS_SLIST" :
[ run ../has_slist_pass.cpp ]
[ compile-fail ../has_slist_fail.cpp ] ;
test-suite "BOOST_HAS_STATIC_ASSERT" :
[ run ../has_static_assert_pass.cpp ]
[ compile-fail ../has_static_assert_fail.cpp ] ;
test-suite "BOOST_HAS_STDINT_H" :
[ run ../has_stdint_h_pass.cpp ]
[ compile-fail ../has_stdint_h_fail.cpp ] ;
test-suite "BOOST_HAS_STLP_USE_FACET" :
[ run ../has_stlp_use_facet_pass.cpp ]
[ compile-fail ../has_stlp_use_facet_fail.cpp ] ;
test-suite "BOOST_HAS_TR1_ARRAY" :
[ run ../has_tr1_array_pass.cpp ]
[ compile-fail ../has_tr1_array_fail.cpp ] ;
test-suite "BOOST_HAS_TR1_BIND" :
[ run ../has_tr1_bind_pass.cpp ]
[ compile-fail ../has_tr1_bind_fail.cpp ] ;
test-suite "BOOST_HAS_TR1_COMPLEX_OVERLOADS" :
[ run ../has_tr1_complex_over_pass.cpp ]
[ compile-fail ../has_tr1_complex_over_fail.cpp ] ;
test-suite "BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG" :
[ run ../has_tr1_complex_trig_pass.cpp ]
[ compile-fail ../has_tr1_complex_trig_fail.cpp ] ;
test-suite "BOOST_HAS_TR1_FUNCTION" :
[ run ../has_tr1_function_pass.cpp ]
[ compile-fail ../has_tr1_function_fail.cpp ] ;
test-suite "BOOST_HAS_TR1_HASH" :
[ run ../has_tr1_hash_pass.cpp ]
[ compile-fail ../has_tr1_hash_fail.cpp ] ;
test-suite "BOOST_HAS_TR1_MEM_FN" :
[ run ../has_tr1_mem_fn_pass.cpp ]
[ compile-fail ../has_tr1_mem_fn_fail.cpp ] ;
test-suite "BOOST_HAS_TR1_RANDOM" :
[ run ../has_tr1_random_pass.cpp ]
[ compile-fail ../has_tr1_random_fail.cpp ] ;
test-suite "BOOST_HAS_TR1_REFERENCE_WRAPPER" :
[ run ../has_tr1_ref_wrap_pass.cpp ]
[ compile-fail ../has_tr1_ref_wrap_fail.cpp ] ;
test-suite "BOOST_HAS_TR1_REGEX" :
[ run ../has_tr1_regex_pass.cpp ]
[ compile-fail ../has_tr1_regex_fail.cpp ] ;
test-suite "BOOST_HAS_TR1_RESULT_OF" :
[ run ../has_tr1_result_of_pass.cpp ]
[ compile-fail ../has_tr1_result_of_fail.cpp ] ;
test-suite "BOOST_HAS_TR1_SHARED_PTR" :
[ run ../has_tr1_shared_ptr_pass.cpp ]
[ compile-fail ../has_tr1_shared_ptr_fail.cpp ] ;
test-suite "BOOST_HAS_TR1_TUPLE" :
[ run ../has_tr1_tuple_pass.cpp ]
[ compile-fail ../has_tr1_tuple_fail.cpp ] ;
test-suite "BOOST_HAS_TR1_TYPE_TRAITS" :
[ run ../has_tr1_type_traits_pass.cpp ]
[ compile-fail ../has_tr1_type_traits_fail.cpp ] ;
test-suite "BOOST_HAS_TR1_UNORDERED_MAP" :
[ run ../has_tr1_unordered_map_pass.cpp ]
[ compile-fail ../has_tr1_unordered_map_fail.cpp ] ;
test-suite "BOOST_HAS_TR1_UNORDERED_SET" :
[ run ../has_tr1_unordered_set_pass.cpp ]
[ compile-fail ../has_tr1_unordered_set_fail.cpp ] ;
test-suite "BOOST_HAS_TR1_UTILITY" :
[ run ../has_tr1_utility_pass.cpp ]
[ compile-fail ../has_tr1_utility_fail.cpp ] ;
test-suite "BOOST_HAS_UNISTD_H" :
[ run ../has_unistd_h_pass.cpp ]
[ compile-fail ../has_unistd_h_fail.cpp ] ;
test-suite "BOOST_HAS_VARIADIC_TMPL" :
[ run ../has_variadic_tmpl_pass.cpp ]
[ compile-fail ../has_variadic_tmpl_fail.cpp ] ;
test-suite "BOOST_MSVC6_MEMBER_TEMPLATES" :
[ run ../has_vc6_mem_templ_pass.cpp ]
[ compile-fail ../has_vc6_mem_templ_fail.cpp ] ;
test-suite "BOOST_MSVC_STD_ITERATOR" :
[ run ../has_vc_iterator_pass.cpp ]
[ compile-fail ../has_vc_iterator_fail.cpp ] ;
test-suite "BOOST_HAS_WINTHREADS" :
[ run ../has_winthreads_pass.cpp ]
[ compile-fail ../has_winthreads_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_ARRAY" :
[ run ../no_0x_hdr_array_pass.cpp ]
[ compile-fail ../no_0x_hdr_array_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_CHRONO" :
[ run ../no_0x_hdr_chrono_pass.cpp ]
[ compile-fail ../no_0x_hdr_chrono_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_CODECVT" :
[ run ../no_0x_hdr_codecvt_pass.cpp ]
[ compile-fail ../no_0x_hdr_codecvt_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_CONCEPTS" :
[ run ../no_0x_hdr_concepts_pass.cpp ]
[ compile-fail ../no_0x_hdr_concepts_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_CONDITION_VARIABLE" :
[ run ../no_0x_hdr_condition_variable_pass.cpp ]
[ compile-fail ../no_0x_hdr_condition_variable_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_CONTAINER_CONCEPTS" :
[ run ../no_0x_hdr_container_concepts_pass.cpp ]
[ compile-fail ../no_0x_hdr_container_concepts_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_FORWARD_LIST" :
[ run ../no_0x_hdr_forward_list_pass.cpp ]
[ compile-fail ../no_0x_hdr_forward_list_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_FUTURE" :
[ run ../no_0x_hdr_future_pass.cpp ]
[ compile-fail ../no_0x_hdr_future_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_INITIALIZER_LIST" :
[ run ../no_0x_hdr_initializer_list_pass.cpp ]
[ compile-fail ../no_0x_hdr_initializer_list_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_ITERATOR_CONCEPTS" :
[ run ../no_0x_hdr_iterator_concepts_pass.cpp ]
[ compile-fail ../no_0x_hdr_iterator_concepts_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_MEMORY_CONCEPTS" :
[ run ../no_0x_hdr_memory_concepts_pass.cpp ]
[ compile-fail ../no_0x_hdr_memory_concepts_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_MUTEX" :
[ run ../no_0x_hdr_mutex_pass.cpp ]
[ compile-fail ../no_0x_hdr_mutex_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_RANDOM" :
[ run ../no_0x_hdr_random_pass.cpp ]
[ compile-fail ../no_0x_hdr_random_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_RATIO" :
[ run ../no_0x_hdr_ratio_pass.cpp ]
[ compile-fail ../no_0x_hdr_ratio_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_REGEX" :
[ run ../no_0x_hdr_regex_pass.cpp ]
[ compile-fail ../no_0x_hdr_regex_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_SYSTEM_ERROR" :
[ run ../no_0x_hdr_system_error_pass.cpp ]
[ compile-fail ../no_0x_hdr_system_error_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_THREAD" :
[ run ../no_0x_hdr_thread_pass.cpp ]
[ compile-fail ../no_0x_hdr_thread_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_TUPLE" :
[ run ../no_0x_hdr_tuple_pass.cpp ]
[ compile-fail ../no_0x_hdr_tuple_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_TYPEINDEX" :
[ run ../no_0x_hdr_typeindex_pass.cpp ]
[ compile-fail ../no_0x_hdr_typeindex_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_TYPE_TRAITS" :
[ run ../no_0x_hdr_type_traits_pass.cpp ]
[ compile-fail ../no_0x_hdr_type_traits_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_UNORDERED_MAP" :
[ run ../no_0x_hdr_unordered_map_pass.cpp ]
[ compile-fail ../no_0x_hdr_unordered_map_fail.cpp ] ;
test-suite "BOOST_NO_0X_HDR_UNORDERED_SET" :
[ run ../no_0x_hdr_unordered_set_pass.cpp ]
[ compile-fail ../no_0x_hdr_unordered_set_fail.cpp ] ;
test-suite "BOOST_NO_ADL_BARRIER" :
[ run ../no_adl_barrier_pass.cpp ]
[ compile-fail ../no_adl_barrier_fail.cpp ] ;
test-suite "BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP" :
[ run ../no_arg_dep_lookup_pass.cpp ]
[ compile-fail ../no_arg_dep_lookup_fail.cpp ] ;
test-suite "BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS" :
[ run ../no_array_type_spec_pass.cpp ]
[ compile-fail ../no_array_type_spec_fail.cpp ] ;
test-suite "BOOST_NO_AUTO_DECLARATIONS" :
[ run ../no_auto_declarations_pass.cpp ]
[ compile-fail ../no_auto_declarations_fail.cpp ] ;
test-suite "BOOST_NO_AUTO_MULTIDECLARATIONS" :
[ run ../no_auto_multidecl_pass.cpp ]
[ compile-fail ../no_auto_multidecl_fail.cpp ] ;
test-suite "BOOST_NO_AUTO_PTR" :
[ run ../no_auto_ptr_pass.cpp ]
[ compile-fail ../no_auto_ptr_fail.cpp ] ;
test-suite "BOOST_BCB_PARTIAL_SPECIALIZATION_BUG" :
[ run ../no_bcb_partial_spec_pass.cpp ]
[ compile-fail ../no_bcb_partial_spec_fail.cpp ] ;
test-suite "BOOST_NO_CHAR16_T" :
[ run ../no_char16_t_pass.cpp ]
[ compile-fail ../no_char16_t_fail.cpp ] ;
test-suite "BOOST_NO_CHAR32_T" :
[ run ../no_char32_t_pass.cpp ]
[ compile-fail ../no_char32_t_fail.cpp ] ;
test-suite "BOOST_NO_COMPLETE_VALUE_INITIALIZATION" :
[ run ../no_com_value_init_pass.cpp ]
[ compile-fail ../no_com_value_init_fail.cpp ] ;
test-suite "BOOST_NO_CONCEPTS" :
[ run ../no_concepts_pass.cpp ]
[ compile-fail ../no_concepts_fail.cpp ] ;
test-suite "BOOST_NO_CONSTEXPR" :
[ run ../no_constexpr_pass.cpp ]
[ compile-fail ../no_constexpr_fail.cpp ] ;
test-suite "BOOST_NO_CTYPE_FUNCTIONS" :
[ run ../no_ctype_functions_pass.cpp ]
[ compile-fail ../no_ctype_functions_fail.cpp ] ;
test-suite "BOOST_NO_CV_SPECIALIZATIONS" :
[ run ../no_cv_spec_pass.cpp ]
[ compile-fail ../no_cv_spec_fail.cpp ] ;
test-suite "BOOST_NO_CV_VOID_SPECIALIZATIONS" :
[ run ../no_cv_void_spec_pass.cpp ]
[ compile-fail ../no_cv_void_spec_fail.cpp ] ;
test-suite "BOOST_NO_CWCHAR" :
[ run ../no_cwchar_pass.cpp ]
[ compile-fail ../no_cwchar_fail.cpp ] ;
test-suite "BOOST_NO_CWCTYPE" :
[ run ../no_cwctype_pass.cpp ]
[ compile-fail ../no_cwctype_fail.cpp ] ;
test-suite "BOOST_NO_DECLTYPE" :
[ run ../no_decltype_pass.cpp ]
[ compile-fail ../no_decltype_fail.cpp ] ;
test-suite "BOOST_DEDUCED_TYPENAME" :
[ run ../no_ded_typename_pass.cpp ]
[ compile-fail ../no_ded_typename_fail.cpp ] ;
test-suite "BOOST_NO_DEFAULTED_FUNCTIONS" :
[ run ../no_defaulted_functions_pass.cpp ]
[ compile-fail ../no_defaulted_functions_fail.cpp ] ;
test-suite "BOOST_NO_DELETED_FUNCTIONS" :
[ run ../no_deleted_functions_pass.cpp ]
[ compile-fail ../no_deleted_functions_fail.cpp ] ;
test-suite "BOOST_NO_DEPENDENT_NESTED_DERIVATIONS" :
[ run ../no_dep_nested_class_pass.cpp ]
[ compile-fail ../no_dep_nested_class_fail.cpp ] ;
test-suite "BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS" :
[ run ../no_dep_val_param_pass.cpp ]
[ compile-fail ../no_dep_val_param_fail.cpp ] ;
test-suite "BOOST_NO_EXCEPTIONS" :
[ run ../no_exceptions_pass.cpp ]
[ compile-fail ../no_exceptions_fail.cpp ] ;
test-suite "BOOST_NO_EXCEPTION_STD_NAMESPACE" :
[ run ../no_excep_std_pass.cpp ]
[ compile-fail ../no_excep_std_fail.cpp ] ;
test-suite "BOOST_NO_EXPLICIT_CONVERSION_OPERATORS" :
[ run ../no_explicit_cvt_ops_pass.cpp ]
[ compile-fail ../no_explicit_cvt_ops_fail.cpp ] ;
test-suite "BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS" :
[ run ../no_exp_func_tem_arg_pass.cpp ]
[ compile-fail ../no_exp_func_tem_arg_fail.cpp ] ;
test-suite "BOOST_NO_EXTERN_TEMPLATE" :
[ run ../no_extern_template_pass.cpp ]
[ compile-fail ../no_extern_template_fail.cpp ] ;
test-suite "BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS" :
[ run ../no_function_template_default_args_pass.cpp ]
[ compile-fail ../no_function_template_default_args_fail.cpp ] ;
test-suite "BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS" :
[ run ../no_function_type_spec_pass.cpp ]
[ compile-fail ../no_function_type_spec_fail.cpp ] ;
test-suite "BOOST_NO_FUNCTION_TEMPLATE_ORDERING" :
[ run ../no_func_tmp_order_pass.cpp ]
[ compile-fail ../no_func_tmp_order_fail.cpp ] ;
test-suite "BOOST_NO_MS_INT64_NUMERIC_LIMITS" :
[ run ../no_i64_limits_pass.cpp ]
[ compile-fail ../no_i64_limits_fail.cpp ] ;
test-suite "BOOST_NO_INITIALIZER_LISTS" :
[ run ../no_initializer_lists_pass.cpp ]
[ compile-fail ../no_initializer_lists_fail.cpp ] ;
test-suite "BOOST_NO_INCLASS_MEMBER_INITIALIZATION" :
[ run ../no_inline_memb_init_pass.cpp ]
[ compile-fail ../no_inline_memb_init_fail.cpp ] ;
test-suite "BOOST_NO_INTEGRAL_INT64_T" :
[ run ../no_integral_int64_t_pass.cpp ]
[ compile-fail ../no_integral_int64_t_fail.cpp ] ;
test-suite "BOOST_NO_IOSFWD" :
[ run ../no_iosfwd_pass.cpp ]
[ compile-fail ../no_iosfwd_fail.cpp ] ;
test-suite "BOOST_NO_IOSTREAM" :
[ run ../no_iostream_pass.cpp ]
[ compile-fail ../no_iostream_fail.cpp ] ;
test-suite "BOOST_NO_IS_ABSTRACT" :
[ run ../no_is_abstract_pass.cpp ]
[ compile-fail ../no_is_abstract_fail.cpp ] ;
test-suite "BOOST_NO_TEMPLATED_ITERATOR_CONSTRUCTORS" :
[ run ../no_iter_construct_pass.cpp ]
[ compile-fail ../no_iter_construct_fail.cpp ] ;
test-suite "BOOST_NO_LAMBDAS" :
[ run ../no_lambdas_pass.cpp ]
[ compile-fail ../no_lambdas_fail.cpp ] ;
test-suite "BOOST_NO_LIMITS" :
[ run ../no_limits_pass.cpp ]
[ compile-fail ../no_limits_fail.cpp ] ;
test-suite "BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS" :
[ run ../no_limits_const_exp_pass.cpp ]
[ compile-fail ../no_limits_const_exp_fail.cpp ] ;
test-suite "BOOST_NO_NUMERIC_LIMITS_LOWEST" :
[ run ../no_limits_lowest_pass.cpp ]
[ compile-fail ../no_limits_lowest_fail.cpp ] ;
test-suite "BOOST_NO_LONG_LONG_NUMERIC_LIMITS" :
[ run ../no_ll_limits_pass.cpp ]
[ compile-fail ../no_ll_limits_fail.cpp ] ;
test-suite "BOOST_NO_LONG_LONG" :
[ run ../no_long_long_pass.cpp ]
[ compile-fail ../no_long_long_fail.cpp ] ;
test-suite "BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS" :
[ run ../no_mem_func_spec_pass.cpp ]
[ compile-fail ../no_mem_func_spec_fail.cpp ] ;
test-suite "BOOST_NO_MEMBER_TEMPLATES" :
[ run ../no_mem_templates_pass.cpp ]
[ compile-fail ../no_mem_templates_fail.cpp ] ;
test-suite "BOOST_NO_MEMBER_TEMPLATE_FRIENDS" :
[ run ../no_mem_templ_frnds_pass.cpp ]
[ compile-fail ../no_mem_templ_frnds_fail.cpp ] ;
test-suite "BOOST_NO_MEMBER_TEMPLATE_KEYWORD" :
[ run ../no_mem_tem_keyword_pass.cpp ]
[ compile-fail ../no_mem_tem_keyword_fail.cpp ] ;
test-suite "BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS" :
[ run ../no_mem_tem_pnts_pass.cpp ]
[ compile-fail ../no_mem_tem_pnts_fail.cpp ] ;
test-suite "BOOST_NO_NESTED_FRIENDSHIP" :
[ run ../no_nested_friendship_pass.cpp ]
[ compile-fail ../no_nested_friendship_fail.cpp ] ;
test-suite "BOOST_NO_NULLPTR" :
[ run ../no_nullptr_pass.cpp ]
[ compile-fail ../no_nullptr_fail.cpp ] ;
test-suite "BOOST_NO_OPERATORS_IN_NAMESPACE" :
[ run ../no_ops_in_namespace_pass.cpp ]
[ compile-fail ../no_ops_in_namespace_fail.cpp ] ;
test-suite "BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION" :
[ run ../no_partial_spec_pass.cpp ]
[ compile-fail ../no_partial_spec_fail.cpp ] ;
test-suite "BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS" :
[ run ../no_part_spec_def_args_pass.cpp ]
[ compile-fail ../no_part_spec_def_args_fail.cpp ] ;
test-suite "BOOST_NO_PRIVATE_IN_AGGREGATE" :
[ run ../no_priv_aggregate_pass.cpp ]
[ compile-fail ../no_priv_aggregate_fail.cpp ] ;
test-suite "BOOST_NO_POINTER_TO_MEMBER_CONST" :
[ run ../no_ptr_mem_const_pass.cpp ]
[ compile-fail ../no_ptr_mem_const_fail.cpp ] ;
test-suite "BOOST_NO_RAW_LITERALS" :
[ run ../no_raw_literals_pass.cpp ]
[ compile-fail ../no_raw_literals_fail.cpp ] ;
test-suite "BOOST_NO_UNREACHABLE_RETURN_DETECTION" :
[ run ../no_ret_det_pass.cpp ]
[ compile-fail ../no_ret_det_fail.cpp ] ;
test-suite "BOOST_NO_RTTI" :
[ run ../no_rtti_pass.cpp ]
[ compile-fail ../no_rtti_fail.cpp ] ;
test-suite "BOOST_NO_RVALUE_REFERENCES" :
[ run ../no_rvalue_references_pass.cpp ]
[ compile-fail ../no_rvalue_references_fail.cpp ] ;
test-suite "BOOST_NO_SCOPED_ENUMS" :
[ run ../no_scoped_enums_pass.cpp ]
[ compile-fail ../no_scoped_enums_fail.cpp ] ;
test-suite "BOOST_NO_SFINAE" :
[ run ../no_sfinae_pass.cpp ]
[ compile-fail ../no_sfinae_fail.cpp ] ;
test-suite "BOOST_NO_SFINAE_EXPR" :
[ run ../no_sfinae_expr_pass.cpp ]
[ compile-fail ../no_sfinae_expr_fail.cpp ] ;
test-suite "BOOST_NO_STRINGSTREAM" :
[ run ../no_sstream_pass.cpp ]
[ compile-fail ../no_sstream_fail.cpp ] ;
test-suite "BOOST_NO_STATIC_ASSERT" :
[ run ../no_static_assert_pass.cpp ]
[ compile-fail ../no_static_assert_fail.cpp ] ;
test-suite "BOOST_NO_STDC_NAMESPACE" :
[ run ../no_stdc_namespace_pass.cpp ]
[ compile-fail ../no_stdc_namespace_fail.cpp ] ;
test-suite "BOOST_NO_STD_ALLOCATOR" :
[ run ../no_std_allocator_pass.cpp ]
[ compile-fail ../no_std_allocator_fail.cpp ] ;
test-suite "BOOST_NO_STD_DISTANCE" :
[ run ../no_std_distance_pass.cpp ]
[ compile-fail ../no_std_distance_fail.cpp ] ;
test-suite "BOOST_NO_STD_ITERATOR" :
[ run ../no_std_iterator_pass.cpp ]
[ compile-fail ../no_std_iterator_fail.cpp ] ;
test-suite "BOOST_NO_STD_ITERATOR_TRAITS" :
[ run ../no_std_iter_traits_pass.cpp ]
[ compile-fail ../no_std_iter_traits_fail.cpp ] ;
test-suite "BOOST_NO_STD_LOCALE" :
[ run ../no_std_locale_pass.cpp ]
[ compile-fail ../no_std_locale_fail.cpp ] ;
test-suite "BOOST_NO_STD_MESSAGES" :
[ run ../no_std_messages_pass.cpp ]
[ compile-fail ../no_std_messages_fail.cpp ] ;
test-suite "BOOST_NO_STD_MIN_MAX" :
[ run ../no_std_min_max_pass.cpp ]
[ compile-fail ../no_std_min_max_fail.cpp ] ;
test-suite "BOOST_NO_STD_OUTPUT_ITERATOR_ASSIGN" :
[ run ../no_std_oi_assign_pass.cpp ]
[ compile-fail ../no_std_oi_assign_fail.cpp ] ;
test-suite "BOOST_NO_STD_TYPEINFO" :
[ run ../no_std_typeinfo_pass.cpp ]
[ compile-fail ../no_std_typeinfo_fail.cpp ] ;
test-suite "BOOST_NO_STD_UNORDERED" :
[ run ../no_std_unordered_pass.cpp ]
[ compile-fail ../no_std_unordered_fail.cpp ] ;
test-suite "BOOST_NO_STD_USE_FACET" :
[ run ../no_std_use_facet_pass.cpp ]
[ compile-fail ../no_std_use_facet_fail.cpp ] ;
test-suite "BOOST_NO_STD_WSTREAMBUF" :
[ run ../no_std_wstreambuf_pass.cpp ]
[ compile-fail ../no_std_wstreambuf_fail.cpp ] ;
test-suite "BOOST_NO_STD_WSTRING" :
[ run ../no_std_wstring_pass.cpp ]
[ compile-fail ../no_std_wstring_fail.cpp ] ;
test-suite "BOOST_NO_SWPRINTF" :
[ run ../no_swprintf_pass.cpp ]
[ compile-fail ../no_swprintf_fail.cpp ] ;
test-suite "BOOST_NO_TEMPLATE_ALIASES" :
[ run ../no_template_aliases_pass.cpp ]
[ compile-fail ../no_template_aliases_fail.cpp ] ;
test-suite "BOOST_NO_TEMPLATED_IOSTREAMS" :
[ run ../no_template_streams_pass.cpp ]
[ compile-fail ../no_template_streams_fail.cpp ] ;
test-suite "BOOST_NO_TEMPLATE_TEMPLATES" :
[ run ../no_template_template_pass.cpp ]
[ compile-fail ../no_template_template_fail.cpp ] ;
test-suite "BOOST_NO_TWO_PHASE_NAME_LOOKUP" :
[ run ../no_two_phase_lookup_pass.cpp ]
[ compile-fail ../no_two_phase_lookup_fail.cpp ] ;
test-suite "BOOST_NO_TYPEID" :
[ run ../no_typeid_pass.cpp ]
[ compile-fail ../no_typeid_fail.cpp ] ;
test-suite "BOOST_NO_TYPENAME_WITH_CTOR" :
[ run ../no_typename_with_ctor_pass.cpp ]
[ compile-fail ../no_typename_with_ctor_fail.cpp ] ;
test-suite "BOOST_NO_UNICODE_LITERALS" :
[ run ../no_unicode_literals_pass.cpp ]
[ compile-fail ../no_unicode_literals_fail.cpp ] ;
test-suite "BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL" :
[ run ../no_using_breaks_adl_pass.cpp ]
[ compile-fail ../no_using_breaks_adl_fail.cpp ] ;
test-suite "BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE" :
[ run ../no_using_decl_overld_pass.cpp ]
[ compile-fail ../no_using_decl_overld_fail.cpp ] ;
test-suite "BOOST_NO_USING_TEMPLATE" :
[ run ../no_using_template_pass.cpp ]
[ compile-fail ../no_using_template_fail.cpp ] ;
test-suite "BOOST_NO_VARIADIC_MACROS" :
[ run ../no_variadic_macros_pass.cpp ]
[ compile-fail ../no_variadic_macros_fail.cpp ] ;
test-suite "BOOST_NO_VARIADIC_TEMPLATES" :
[ run ../no_variadic_templates_pass.cpp ]
[ compile-fail ../no_variadic_templates_fail.cpp ] ;
test-suite "BOOST_NO_VOID_RETURNS" :
[ run ../no_void_returns_pass.cpp ]
[ compile-fail ../no_void_returns_fail.cpp ] ;
test-suite "BOOST_NO_INTRINSIC_WCHAR_T" :
[ run ../no_wchar_t_pass.cpp ]
[ compile-fail ../no_wchar_t_fail.cpp ] ;

View File

@@ -1,12 +0,0 @@
# copyright John Maddock 2003
# Use, modification and distribution are subject to the
# Boost Software License, Version 1.0. (See accompanying file
# LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
project
: requirements
# threading tests require thread support turned on:
<threading>multi
;
local test-requirements = <library>../../test/build//boost_test_exec_monitor ;

View File

@@ -1,23 +0,0 @@
// Copyright (C) 2007 Douglas Gregor
// Use, modification and distribution are subject to 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)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_HAS_CONCEPTS
// TITLE: concepts
// DESCRIPTION: The compiler supports C++0x concepts
namespace boost_has_concepts {
concept C<typename T> { }
concept_map C<int> { }
int test()
{
return 0;
}
}

View File

@@ -1,25 +0,0 @@
// (C) Copyright John Maddock 2005.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_HAS_EXPM1
// TITLE: expm1
// DESCRIPTION: The std lib has a C99-conforming expm1 function.
#include <math.h>
namespace boost_has_expm1{
int test()
{
double x = 0.5;
x = ::expm1(x);
(void)x;
return 0;
}
}

View File

@@ -10,22 +10,8 @@
// DESCRIPTION: The C++ implementation provides the (SGI) hash_set
// or hash_map classes.
#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
# ifdef BOOST_NO_STD_UNORDERED
# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
# include <ext/hash_set>
# include <ext/hash_map>
# else
// If we have BOOST_NO_STD_UNORDERED *not* defined, then we must
// not include the <ext/*> headers as they clash with the C++0x
// headers. ie in any given translation unit we can include one
// or the other, but not both.
# define DISABLE_BOOST_HAS_HASH_TEST
# endif
#else
#include <hash_set>
#include <hash_map>
#endif
#ifndef BOOST_STD_EXTENSION_NAMESPACE
#define BOOST_STD_EXTENSION_NAMESPACE std
@@ -33,8 +19,6 @@
namespace boost_has_hash{
#ifndef DISABLE_BOOST_HAS_HASH_TEST
template <class Key, class Eq, class Hash, class Alloc>
void foo(const BOOST_STD_EXTENSION_NAMESPACE::hash_set<Key,Eq,Hash,Alloc>& )
{
@@ -45,16 +29,12 @@ void foo(const BOOST_STD_EXTENSION_NAMESPACE::hash_map<Key,T,Eq,Hash,Alloc>& )
{
}
#endif
int test()
{
#ifndef DISABLE_BOOST_HAS_HASH_TEST
BOOST_STD_EXTENSION_NAMESPACE::hash_set<int> hs;
foo(hs);
BOOST_STD_EXTENSION_NAMESPACE::hash_map<int, long> hm;
foo(hm);
#endif
return 0;
}

View File

@@ -1,24 +0,0 @@
// (C) Copyright John Maddock 2005.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_HAS_LOG1P
// TITLE: log1p
// DESCRIPTION: The std lib has a C99-conforming log1p function.
#include <math.h>
namespace boost_has_log1p{
int test()
{
double x = 0.5;
x = ::log1p(x);
(void)x;
return 0;
}
}

View File

@@ -14,46 +14,17 @@
namespace boost_has_pthreads{
extern "C" void* thread_proc(void* arg)
{
return arg;
}
int test()
{
pthread_mutex_t mut;
int result = pthread_mutex_init(&mut, 0);
if(0 == result)
{
//
// Failure to be able to create and use a mutex
// is always a failure, even if the pthread
// library is just a non-functioning stub.
//
result |= pthread_mutex_lock(&mut);
result |= pthread_mutex_unlock(&mut);
result |= pthread_mutex_trylock(&mut);
result |= pthread_mutex_unlock(&mut);
result |= pthread_mutex_destroy(&mut);
//
// Try and create a thread, this is allowed
// to fail, in case we are linking to a pthread
// "stub" library.
//
pthread_t t;
int r = pthread_create(&t, 0, &thread_proc, 0);
// result |= r;
if(r == 0)
{
//
// If we can create a thread, then we must be able to join to it:
//
void* arg;
r = pthread_join(t, &arg);
result |= r;
}
pthread_mutex_lock(&mut);
pthread_mutex_unlock(&mut);
pthread_mutex_destroy(&mut);
}
return result;
return 0;
}
}

View File

@@ -1,26 +0,0 @@
// Copyright (C) 2007 Douglas Gregor
// Use, modification and distribution are subject to 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)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_HAS_RVALUE_REFS
// TITLE: rvalue references
// DESCRIPTION: The compiler supports C++0x rvalue references
namespace boost_has_rvalue_refs {
void g(int&) {}
template<typename F, typename T>
void forward(F f, T&& t) { f(static_cast<T&&>(t)); }
int test()
{
int x;
forward(g, x);
return 0;
}
}

View File

@@ -9,12 +9,7 @@
// TITLE: <slist>
// DESCRIPTION: The C++ implementation provides the (SGI) slist class.
#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
#include <ext/slist>
#else
#include <slist>
#endif
#ifndef BOOST_STD_EXTENSION_NAMESPACE
#define BOOST_STD_EXTENSION_NAMESPACE std

View File

@@ -1,20 +0,0 @@
// Copyright (C) 2007 Douglas Gregor
// Use, modification and distribution are subject to 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)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_HAS_STATIC_ASSERT
// TITLE: static assertions
// DESCRIPTION: The compiler supports C++0x static assertions
namespace boost_has_static_assert {
int test()
{
static_assert(true, "OK");
return 0;
}
}

View File

@@ -26,14 +26,11 @@ namespace boost_has_stdint_h{
int test()
{
int8_t i = 0;
#ifndef __QNX__
// QNX has these under non-standard names, our cstdint.hpp will find them however:
int_fast8_t j = 0;
int_least8_t k = 0;
(void)i;
(void)j;
(void)k;
#endif
(void)i;
return 0;
}
@@ -45,4 +42,3 @@ int test()

View File

@@ -1,23 +0,0 @@
// (C) Copyright John Maddock 2005.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_HAS_TR1_ARRAY
// TITLE: std::tr1::array
// DESCRIPTION: The std lib has a tr1-conforming array library.
#include <array>
namespace boost_has_tr1_array{
using std::tr1::array;
int test()
{
return 0;
}
}

View File

@@ -1,23 +0,0 @@
// (C) Copyright John Maddock 2005.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_HAS_TR1_BIND
// TITLE: std::tr1::bind
// DESCRIPTION: The std lib has a tr1-conforming bind template function.
#include <functional>
namespace boost_has_tr1_bind{
using std::tr1::bind;
int test()
{
return 0;
}
}

View File

@@ -1,24 +0,0 @@
// (C) Copyright John Maddock 2005.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_HAS_TR1_COMPLEX_OVERLOADS
// TITLE: std::complex overloads
// DESCRIPTION: The std lib has a tr1-conforming set of std::complex overloads.
#include <complex>
namespace boost_has_tr1_complex_overloads{
int test()
{
std::arg(0);
std::conj(0.0);
return 0;
}
}

View File

@@ -1,30 +0,0 @@
// (C) Copyright John Maddock 2005.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
// TITLE: std::complex inverse trig functions
// DESCRIPTION: The std lib has a tr1-conforming set of std::complex inverse trig functions.
#include <complex>
namespace boost_has_tr1_complex_inverse_trig{
int test()
{
std::complex<double> cd;
std::asin(cd);
std::acos(cd);
std::atan(cd);
std::asinh(cd);
std::acosh(cd);
std::atanh(cd);
std::fabs(cd);
return 0;
}
}

View File

@@ -1,23 +0,0 @@
// (C) Copyright John Maddock 2005.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_HAS_TR1_FUNCTION
// TITLE: std::tr1::function
// DESCRIPTION: The std lib has a tr1-conforming function template class.
#include <functional>
namespace boost_has_tr1_function{
using std::tr1::function;
int test()
{
return 0;
}
}

View File

@@ -1,23 +0,0 @@
// (C) Copyright John Maddock 2005.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_HAS_TR1_HASH
// TITLE: std::tr1::hash
// DESCRIPTION: The std lib has a tr1-conforming hash function library.
#include <functional>
namespace boost_has_tr1_hash{
using std::tr1::hash;
int test()
{
return 0;
}
}

View File

@@ -1,23 +0,0 @@
// (C) Copyright John Maddock 2005.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_HAS_TR1_MEM_FN
// TITLE: std::tr1::mem_fn
// DESCRIPTION: The std lib has a tr1-conforming mem_fn template function.
#include <functional>
namespace boost_has_tr1_mem_fn{
using std::tr1::mem_fn;
int test()
{
return 0;
}
}

View File

@@ -1,23 +0,0 @@
// (C) Copyright John Maddock 2005.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_HAS_TR1_RANDOM
// TITLE: std::tr1::random
// DESCRIPTION: The std lib has a tr1-conforming random numer library.
#include <random>
namespace boost_has_tr1_random{
using std::tr1::variate_generator;
int test()
{
return 0;
}
}

View File

@@ -1,24 +0,0 @@
// (C) Copyright John Maddock 2005.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_HAS_TR1_REFERENCE_WRAPPER
// TITLE: std::tr1::reference_wrapper
// DESCRIPTION: The std lib has a tr1-conforming reference_wrapper.
#include <functional>
namespace boost_has_tr1_reference_wrapper{
int test()
{
int i;
std::tr1::reference_wrapper<int> r = std::tr1::ref(i);
(void)r;
return 0;
}
}

View File

@@ -1,24 +0,0 @@
// (C) Copyright John Maddock 2005.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_HAS_TR1_REGEX
// TITLE: std::tr1::regex
// DESCRIPTION: The std lib has a tr1-conforming regex library.
#include <regex>
namespace boost_has_tr1_regex{
using std::tr1::regex;
int test()
{
return 0;
}
}

View File

@@ -1,24 +0,0 @@
// (C) Copyright John Maddock 2005.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_HAS_TR1_RESULT_OF
// TITLE: std::tr1::result_of
// DESCRIPTION: The std lib has a tr1-conforming result_of template.
#include <functional>
namespace boost_has_tr1_result_of{
typedef std::tr1::result_of<int*(int)> r;
typedef r::type rr;
int test()
{
return 0;
}
}

View File

@@ -1,24 +0,0 @@
// (C) Copyright John Maddock 2005.
// Use, modification and distribution are subject to 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)
// See http://www.boost.org/libs/config for most recent version.
// MACRO: BOOST_HAS_TR1_SHARED_PTR
// TITLE: std::tr1::shared_ptr
// DESCRIPTION: The std lib has a tr1-conforming shrared_ptr.
#include <memory>
namespace boost_has_tr1_shared_ptr{
int test()
{
int i;
std::tr1::shared_ptr<int> r(new int());
(void)r;
return 0;
}
}

Some files were not shown because too many files have changed in this diff Show More