mirror of
https://github.com/boostorg/config.git
synced 2026-03-07 06:14:04 +01:00
Compare commits
230 Commits
boost-1.34
...
boost-1.51
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
74551afb6b | ||
|
|
bc0114f7c8 | ||
|
|
1b1589b54d | ||
|
|
38fbec8fc6 | ||
|
|
816c3e22ec | ||
|
|
9d2a5f4d44 | ||
|
|
157c39e544 | ||
|
|
e1657372eb | ||
|
|
6f18ead6db | ||
|
|
3b7ff73e9d | ||
|
|
7bd78dda03 | ||
|
|
e7dd982de7 | ||
|
|
18be7dcf00 | ||
|
|
0bcba7df38 | ||
|
|
72e2d4c24f | ||
|
|
a4c133c6ce | ||
|
|
8dd107358b | ||
|
|
20a331cd0e | ||
|
|
dd3ebc8776 | ||
|
|
98d2f9fc1d | ||
|
|
29fd4a0f96 | ||
|
|
df7e235df6 | ||
|
|
34092fc1c1 | ||
|
|
01dc0e99a0 | ||
|
|
1efc29c864 | ||
|
|
7b3a8ec37e | ||
|
|
1614645b5c | ||
|
|
a29c3edc9b | ||
|
|
3ce24d6389 | ||
|
|
bb3e68b516 | ||
|
|
c99164cf39 | ||
|
|
1121d53a1d | ||
|
|
71fb00764a | ||
|
|
648508cb89 | ||
|
|
ceeb9d5366 | ||
|
|
fbb893adf0 | ||
|
|
ff9a447c71 | ||
|
|
e5b586dc02 | ||
|
|
49e17b082e | ||
|
|
4ce3e43a4e | ||
|
|
3d7932ae61 | ||
|
|
7634ba7ec2 | ||
|
|
4542714613 | ||
|
|
08ebe416a1 | ||
|
|
d17f79ab80 | ||
|
|
027571bf6e | ||
|
|
7254d6c9c8 | ||
|
|
203833a212 | ||
|
|
39b41a8708 | ||
|
|
b6760d3082 | ||
|
|
d9ea70034c | ||
|
|
3d32b20f45 | ||
|
|
28b846cf72 | ||
|
|
10f2b7c60e | ||
|
|
960f3b5e8e | ||
|
|
ae3c247f55 | ||
|
|
62a577dbec | ||
|
|
cf37052edd | ||
|
|
d1e645c524 | ||
|
|
5de0a5bc43 | ||
|
|
cc61ff79fe | ||
|
|
628fbc53bd | ||
|
|
2e03de9749 | ||
|
|
8854d5e66e | ||
|
|
115746bced | ||
|
|
52cb492090 | ||
|
|
4083190c8b | ||
|
|
f9a83ce4f3 | ||
|
|
a8d816422c | ||
|
|
bc97209574 | ||
|
|
d379865f42 | ||
|
|
b3d88665a5 | ||
|
|
40c8299a25 | ||
|
|
63ec21a0d6 | ||
|
|
0d470a6123 | ||
|
|
34574b0044 | ||
|
|
90d1b9fb5c | ||
|
|
e588cfeb76 | ||
|
|
c7e2cb149e | ||
|
|
b47cfe8c7b | ||
|
|
fbef3e88e5 | ||
|
|
c88516aaf4 | ||
|
|
3e36b54b88 | ||
|
|
10d20f476a | ||
|
|
2442c44175 | ||
|
|
06f3a2ebd7 | ||
|
|
b526ab9386 | ||
|
|
e37e2cb408 | ||
|
|
71ac171bed | ||
|
|
1e661e3941 | ||
|
|
7264ef8ac1 | ||
|
|
cc9211e494 | ||
|
|
f598e24025 | ||
|
|
365c54860b | ||
|
|
9b34e89b62 | ||
|
|
2b3583277f | ||
|
|
342f67a562 | ||
|
|
2045854fde | ||
|
|
6c321feebf | ||
|
|
cb26255e3c | ||
|
|
725c43c501 | ||
|
|
89f16cfbc0 | ||
|
|
186abf9110 | ||
|
|
239f2b758b | ||
|
|
1f2864b3ae | ||
|
|
047d11cf66 | ||
|
|
b4eaf1eb50 | ||
|
|
5bad377e04 | ||
|
|
6feb703b7e | ||
|
|
4819b3b321 | ||
|
|
9f1b6471d9 | ||
|
|
37698ba3cf | ||
|
|
2cac8cf454 | ||
|
|
f4ea4c2def | ||
|
|
6fac146f52 | ||
|
|
9f206cde8a | ||
|
|
80b0407338 | ||
|
|
0dcc2aeffb | ||
|
|
b62d7ccb27 | ||
|
|
9c70289360 | ||
|
|
1ce5a784ae | ||
|
|
20818b6411 | ||
|
|
6f2afd458c | ||
|
|
da6e707602 | ||
|
|
24c158f324 | ||
|
|
a593af70bb | ||
|
|
e4c0571465 | ||
|
|
1ac4393feb | ||
|
|
db33faa680 | ||
|
|
37658f5f8a | ||
|
|
5f70565f29 | ||
|
|
f7d34f0317 | ||
|
|
6f1384143e | ||
|
|
d4a4685c73 | ||
|
|
a7b5a1f17e | ||
|
|
0167ee763d | ||
|
|
b78e4903e1 | ||
|
|
08e7e7512f | ||
|
|
6b514abf06 | ||
|
|
d4ff48c646 | ||
|
|
36f2f49773 | ||
|
|
91b9fa5748 | ||
|
|
db614f7ac2 | ||
|
|
81a1bb0395 | ||
|
|
637204e660 | ||
|
|
66b6cae557 | ||
|
|
3c76ba7f5c | ||
|
|
bc8b26e563 | ||
|
|
39c3bcc227 | ||
|
|
2c9e75db4e | ||
|
|
ce659fb919 | ||
|
|
cb5b1ef22f | ||
|
|
bd482d4f9f | ||
|
|
b13e704ba5 | ||
|
|
fb9f31ff36 | ||
|
|
494cd37654 | ||
|
|
6ae066f68c | ||
|
|
d9de80031d | ||
|
|
8cc610fe31 | ||
|
|
0fc3d2f4ad | ||
|
|
3bd4d0b6ae | ||
|
|
97ff1659be | ||
|
|
fdfdbdf8de | ||
|
|
c578de9653 | ||
|
|
a1835d5794 | ||
|
|
010ef1711a | ||
|
|
4dea4b5959 | ||
|
|
b6b6559f4b | ||
|
|
e6501538a2 | ||
|
|
9cf08f8043 | ||
|
|
551c8c1f55 | ||
|
|
d46d34a869 | ||
|
|
ef7a510e86 | ||
|
|
668757a216 | ||
|
|
6ed14ed5e1 | ||
|
|
b2acba7499 | ||
|
|
83f250a5d6 | ||
|
|
bed705da59 | ||
|
|
87bc2fd4ca | ||
|
|
05b7c1402c | ||
|
|
4c11df6feb | ||
|
|
66dfa52613 | ||
|
|
ec02089d75 | ||
|
|
4bec7e0f66 | ||
|
|
0948a9ccc2 | ||
|
|
1b4e28cbae | ||
|
|
73379d34b4 | ||
|
|
f8b1046731 | ||
|
|
b457855f90 | ||
|
|
898841e640 | ||
|
|
f7964243d6 | ||
|
|
0f6f5f8d65 | ||
|
|
7d6a6b771e | ||
|
|
ec4827dea7 | ||
|
|
4a7fd6f09f | ||
|
|
c204461f16 | ||
|
|
d7d7441e35 | ||
|
|
cce1a4370b | ||
|
|
405a113698 | ||
|
|
b1a5420f4d | ||
|
|
79994e01c5 | ||
|
|
9763463b96 | ||
|
|
6fc2d361aa | ||
|
|
23e87f9712 | ||
|
|
06351de064 | ||
|
|
b9714083dd | ||
|
|
8edf64db19 | ||
|
|
dcbf16e6a6 | ||
|
|
698936447b | ||
|
|
dab246947a | ||
|
|
3e83b97f92 | ||
|
|
2001e370c0 | ||
|
|
15b2a4515d | ||
|
|
54b470c987 | ||
|
|
b9e514c5be | ||
|
|
2d2242e7fb | ||
|
|
3f7a60a1ca | ||
|
|
13c8a4759c | ||
|
|
36a4261fda | ||
|
|
89fec50253 | ||
|
|
d544a55259 | ||
|
|
a279a52fc4 | ||
|
|
139138f018 | ||
|
|
99a62a621b | ||
|
|
1a841a3e84 | ||
|
|
7b4db900ad | ||
|
|
1241a29828 | ||
|
|
55524c5108 | ||
|
|
2d0879e400 | ||
|
|
37dfdf81d4 |
1686
config.htm
1686
config.htm
File diff suppressed because it is too large
Load Diff
62
doc/Jamfile.v2
Normal file
62
doc/Jamfile.v2
Normal file
@@ -0,0 +1,62 @@
|
||||
# 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 pdfinstall : standalone/<format>pdf : <location>. <install-type>PDF ;
|
||||
explicit pdfinstall ;
|
||||
|
||||
|
||||
32
doc/acknowledgements.qbk
Normal file
32
doc/acknowledgements.qbk
Normal file
@@ -0,0 +1,32 @@
|
||||
[/
|
||||
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]
|
||||
|
||||
|
||||
60
doc/config.qbk
Normal file
60
doc/config.qbk
Normal file
@@ -0,0 +1,60 @@
|
||||
[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]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
434
doc/configuring_boost.qbk
Normal file
434
doc/configuring_boost.qbk
Normal file
@@ -0,0 +1,434 @@
|
||||
[/
|
||||
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 svn 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.Thread 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.Thread 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
|
||||
compiled, 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]
|
||||
|
||||
219
doc/guidelines.qbk
Normal file
219
doc/guidelines.qbk
Normal file
@@ -0,0 +1,219 @@
|
||||
[/
|
||||
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 warnings 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]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
5
doc/html/HTML.manifest
Normal file
5
doc/html/HTML.manifest
Normal file
@@ -0,0 +1,5 @@
|
||||
index.html
|
||||
boost_config/boost_macro_reference.html
|
||||
boost_config/guidelines_for_boost_authors.html
|
||||
boost_config/rationale.html
|
||||
boost_config/acknowledgements.html
|
||||
62
doc/html/boost_config/acknowledgements.html
Normal file
62
doc/html/boost_config/acknowledgements.html
Normal file
@@ -0,0 +1,62 @@
|
||||
<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.76.1">
|
||||
<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 boost_config_acknowledgements">
|
||||
<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 © 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>
|
||||
4516
doc/html/boost_config/boost_macro_reference.html
Normal file
4516
doc/html/boost_config/boost_macro_reference.html
Normal file
File diff suppressed because it is too large
Load Diff
377
doc/html/boost_config/guidelines_for_boost_authors.html
Normal file
377
doc/html/boost_config/guidelines_for_boost_authors.html
Normal file
@@ -0,0 +1,377 @@
|
||||
<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.76.1">
|
||||
<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 boost_config_guidelines_for_boost_authors">
|
||||
<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"><boost/config.hpp></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 class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
Boost library implementers are not required to "<code class="computeroutput"><span class="preprocessor">#include</span>
|
||||
<span class="special"><</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">></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 class="listitem">
|
||||
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"><</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">></span></code>" is the preferred way to obtain
|
||||
configuration information not available from the standard headers such
|
||||
as <code class="computeroutput"><span class="special"><</span><span class="identifier">climits</span><span class="special">></span></code>, etc.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
If configuration information can be deduced from standard headers such
|
||||
as <code class="computeroutput"><span class="special"><</span><span class="identifier">climits</span><span class="special">></span></code>, use those standard headers rather
|
||||
than <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><span class="identifier">hpp</span><span class="special">></span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Boost files that use macros defined in <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><span class="identifier">hpp</span><span class="special">></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"><</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">></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 class="listitem">
|
||||
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 class="listitem">
|
||||
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 class="listitem">
|
||||
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 boost_config_guidelines_for_boost_authors_warnings">
|
||||
<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"><</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">></span></code>
|
||||
can be used to disable certain compiler warnings that are hard or impossible
|
||||
to otherwise remove.
|
||||
</p>
|
||||
<p>
|
||||
Note that:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
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 class="listitem">
|
||||
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 class="listitem">
|
||||
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 boost_config_guidelines_for_boost_authors_adding_new_defect_macros">
|
||||
<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 class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
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 class="listitem">
|
||||
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 class="listitem">
|
||||
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 class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
Define the defect macro in those config headers that require it.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Document the macro in this documentation (please do not forget this step!!)
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Commit everything.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Keep an eye on the regression tests for new failures in Boost.Config
|
||||
caused by the addition.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Start using the macro.
|
||||
</li>
|
||||
</ul></div>
|
||||
</div>
|
||||
<div class="section boost_config_guidelines_for_boost_authors_adding_new_feature_test_macros">
|
||||
<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"><boost/config/suffix.hpp></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"><</span><span class="identifier">unistd</span><span class="special">.</span><span class="identifier">h</span><span class="special">></span></code>).
|
||||
</p>
|
||||
</div>
|
||||
<div class="section boost_config_guidelines_for_boost_authors_modifying_the_boost_configuration_headers">
|
||||
<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"><boost/config.hpp></a>
|
||||
should never change, don't alter this file.
|
||||
</p>
|
||||
<p>
|
||||
<a href="../../../../../boost/config/user.hpp" target="_top"><boost/config/user.hpp></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"><boost/config/suffix.hpp></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"><boost/config/select_compiler_config.hpp></a>,
|
||||
<a href="../../../../../boost/config/select_platform_config.hpp" target="_top"><boost/config/select_platform_config.hpp></a>
|
||||
and <a href="../../../../../boost/config/select_stdlib_config.hpp" target="_top"><boost/config/select_stdlib_config.hpp></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 © 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>
|
||||
124
doc/html/boost_config/rationale.html
Normal file
124
doc/html/boost_config/rationale.html
Normal file
@@ -0,0 +1,124 @@
|
||||
<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.76.1">
|
||||
<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 boost_config_rationale">
|
||||
<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 boost_config_rationale_the_problem">
|
||||
<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"><</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">></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 boost_config_rationale_the_solution">
|
||||
<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 © 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>
|
||||
960
doc/html/index.html
Normal file
960
doc/html/index.html
Normal file
@@ -0,0 +1,960 @@
|
||||
<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.76.1">
|
||||
<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">
|
||||
<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 © 2001-2007 Beman Dawes, Vesa Karvonen, John
|
||||
Maddock</p></div>
|
||||
<div><div class="legalnotice">
|
||||
<a name="config.legal"></a><p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></div>
|
||||
</div>
|
||||
<hr>
|
||||
</div>
|
||||
<div class="toc">
|
||||
<p><b>Table of Contents</b></p>
|
||||
<dl>
|
||||
<dt><span class="section"><a href="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
|
||||
<boost/config.hpp> 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_c__03_defects">Macros
|
||||
that describe C++03 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___future_features">Macros
|
||||
that describe possible C++ future 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__11_features_not_supported">Macros
|
||||
that describe C++11 features not supported</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_config/boost_macro_reference.html#boost_config.boost_macro_reference.macros_that_allow_use_of_c__11_features_with_c__03_compilers">Macros
|
||||
that allow use of C++11 features with C++03 compilers</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.boost_deprecated_macros">Boost
|
||||
Deprecated 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 boost_config_configuring_boost_for_your_platform">
|
||||
<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
|
||||
<boost/config.hpp> 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 boost_config_configuring_boost_for_your_platform_using_the_default_boost_configuration">
|
||||
<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 boost_config_configuring_boost_for_your_platform_the__boost_config_hpp__header">
|
||||
<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 <boost/config.hpp> header">The
|
||||
<boost/config.hpp> 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"><boost/config.hpp></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>
|
||||
<div class="section boost_config_configuring_boost_for_your_platform_using_the_configure_script">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.configuring_boost_for_your_platform.using_the_configure_script"></a><a name="config_config_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><boost-root></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><boost-root></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"><boost/config/user.hpp></a>
|
||||
(located under <span class="emphasis"><em><boost-root></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 class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Option 1:</strong></span> copy the header into <span class="emphasis"><em><boost-root></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"><boost/config/user.hpp></a>
|
||||
to the svn repository (something you will not be thanked for!).
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<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><boost-root></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">"<boost/config/user/multithread-gcc-config.hpp>"</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>
|
||||
<div class="section boost_config_configuring_boost_for_your_platform_user_settable_options">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_config.configuring_boost_for_your_platform.user_settable_options"></a><a name="config_user_settable"></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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"><</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">></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.Thread 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.Thread 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 boost_config_configuring_boost_for_your_platform_advanced_configuration_usage">
|
||||
<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"><boost/config/user.hpp></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"><boost/config/user.hpp></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"><boost/config/suffix.hpp></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 boost_config_configuring_boost_for_your_platform_advanced_configuration_usage_example_1__creating_our_own_frozen_configuration">
|
||||
<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"><</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">></span></code></a> for the compiler, <a href="../../../../boost/config/stdlib/stlport.hpp" target="_top"><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><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">></span></code></a> for the standard library, and
|
||||
<a href="../../../../boost/config/platform/win32.hpp" target="_top"><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><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">></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"><boost/config/user.hpp></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 boost_config_configuring_boost_for_your_platform_advanced_configuration_usage_example_2__skipping_files_that_you_don_t_need">
|
||||
<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"><boost/config/user.hpp></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 compiled, and the second that you have removed
|
||||
a dependency on two boost headers.
|
||||
</p>
|
||||
</div>
|
||||
<div class="section boost_config_configuring_boost_for_your_platform_advanced_configuration_usage_example_3__using_configure_script_to_freeze_the_boost_configuration">
|
||||
<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 boost_config_configuring_boost_for_your_platform_testing_the_boost_configuration">
|
||||
<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><boost-root></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: April 22, 2012 at 10:30:25 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>
|
||||
1276
doc/macro_reference.qbk
Normal file
1276
doc/macro_reference.qbk
Normal file
File diff suppressed because it is too large
Load Diff
80
doc/rationale.qbk
Normal file
80
doc/rationale.qbk
Normal file
@@ -0,0 +1,80 @@
|
||||
[/
|
||||
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]
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
#endif
|
||||
|
||||
// if we don't have a std library config set, try and find one:
|
||||
#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG)
|
||||
#if !defined(BOOST_STDLIB_CONFIG) && !defined(BOOST_NO_STDLIB_CONFIG) && !defined(BOOST_NO_CONFIG) && defined(__cplusplus)
|
||||
# include <boost/config/select_stdlib_config.hpp>
|
||||
#endif
|
||||
// if we have a std library config, include it now:
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
// 8026 - functions taking class by value arguments are not expanded inline
|
||||
|
||||
#pragma nopushoptwarn
|
||||
# pragma option push -Vx -Ve -a8 -b -pc -Vmv -VC- -Vl- -w-8027 -w-8026
|
||||
# pragma option push -a8 -Vx- -Ve- -b- -pc -Vmv -VC- -Vl- -w-8027 -w-8026
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -3,6 +3,20 @@
|
||||
// Boost Software License, Version 1.0. (See accompanying file
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#pragma pack(push,8)
|
||||
//
|
||||
// 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
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// abi_prefix header -------------------------------------------------------//
|
||||
|
||||
// © Copyright John Maddock 2003
|
||||
// (c) 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,3 +18,8 @@
|
||||
#ifdef BOOST_HAS_ABI_HEADERS
|
||||
# include BOOST_ABI_PREFIX
|
||||
#endif
|
||||
|
||||
#if defined( __BORLANDC__ )
|
||||
#pragma nopushoptwarn
|
||||
#endif
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// abi_sufffix header -------------------------------------------------------//
|
||||
|
||||
// © Copyright John Maddock 2003
|
||||
// (c) 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_prefix.hpp must only be used after boost/config/abi_prefix.hpp
|
||||
# error Header boost/config/abi_suffix.hpp must only be used after boost/config/abi_prefix.hpp
|
||||
#else
|
||||
# undef BOOST_CONFIG_ABI_PREFIX_HPP
|
||||
#endif
|
||||
@@ -20,4 +20,8 @@
|
||||
# include BOOST_ABI_SUFFIX
|
||||
#endif
|
||||
|
||||
#if defined( __BORLANDC__ )
|
||||
#pragma nopushoptwarn
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -25,6 +25,9 @@ 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!
|
||||
@@ -60,6 +63,8 @@ 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.
|
||||
@@ -130,11 +135,26 @@ 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(BOOST_MSVC) && (BOOST_MSVC >= 1700)
|
||||
|
||||
// vc11:
|
||||
# define BOOST_LIB_TOOLSET "vc110"
|
||||
|
||||
#elif defined(__BORLANDC__)
|
||||
|
||||
// CBuilder 6:
|
||||
@@ -173,8 +193,16 @@ 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))
|
||||
# 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))
|
||||
# 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")
|
||||
@@ -185,8 +213,16 @@ 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))
|
||||
# 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))
|
||||
# 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")
|
||||
@@ -197,7 +233,9 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||
|
||||
# else
|
||||
|
||||
# if defined(_DEBUG)
|
||||
# if defined(_DEBUG) && defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-gyd"
|
||||
# elif defined(_DEBUG)
|
||||
# define BOOST_LIB_RT_OPT "-gd"
|
||||
# else
|
||||
# define BOOST_LIB_RT_OPT
|
||||
@@ -209,8 +247,16 @@ 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))
|
||||
# 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))
|
||||
# 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")
|
||||
@@ -221,8 +267,16 @@ 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))
|
||||
# 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))
|
||||
# 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")
|
||||
@@ -233,7 +287,10 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||
|
||||
# else
|
||||
|
||||
# if defined(_DEBUG)
|
||||
# if defined(_DEBUG)\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-sgyd"
|
||||
# elif defined(_DEBUG)
|
||||
# define BOOST_LIB_RT_OPT "-sgd"
|
||||
# else
|
||||
# define BOOST_LIB_RT_OPT "-s"
|
||||
@@ -260,16 +317,26 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||
|
||||
# ifdef _RTLDLL
|
||||
|
||||
# ifdef BOOST_BORLAND_DEBUG
|
||||
# if defined(BOOST_BORLAND_DEBUG)\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-yd"
|
||||
# elif defined(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
|
||||
|
||||
# ifdef BOOST_BORLAND_DEBUG
|
||||
# if defined(BOOST_BORLAND_DEBUG)\
|
||||
&& defined(BOOST_DEBUG_PYTHON) && defined(BOOST_LINKING_PYTHON)
|
||||
# define BOOST_LIB_RT_OPT "-syd"
|
||||
# elif defined(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
|
||||
@@ -299,16 +366,21 @@ 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)
|
||||
|
||||
#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_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")
|
||||
# pragma message ("Linking to lib file: " BOOST_LIB_PREFIX BOOST_STRINGIZE(BOOST_LIB_NAME) BOOST_LIB_THREAD_OPT BOOST_LIB_RT_OPT ".lib")
|
||||
# endif
|
||||
#else
|
||||
#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
|
||||
# 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
|
||||
#endif
|
||||
|
||||
#else
|
||||
@@ -347,17 +419,4 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
|
||||
#if defined(BOOST_DYN_LINK)
|
||||
# undef BOOST_DYN_LINK
|
||||
#endif
|
||||
#if defined(BOOST_AUTO_LINK_NOMANGLE)
|
||||
# undef BOOST_AUTO_LINK_NOMANGLE
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -14,18 +14,17 @@
|
||||
// we don't support Borland prior to version 5.4:
|
||||
#if __BORLANDC__ < 0x540
|
||||
# error "Compiler not supported or configured - please reconfigure"
|
||||
#elif __BORLANDC__ < 0x581
|
||||
# pragma message( "Support for Borland compilers older than BCB2006 is deprecated in Boost 1.34" )
|
||||
#endif
|
||||
|
||||
// last known and checked version is 0x600 (Builder X preview)
|
||||
// Or 0x582 (Borland C++ Builder 2006 Update 1):
|
||||
#if (__BORLANDC__ > 0x582) && (__BORLANDC__ != 0x600)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
// 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
|
||||
//# 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
|
||||
|
||||
//
|
||||
@@ -38,7 +37,6 @@
|
||||
# define BOOST_BCB_WITH_DINKUMWARE
|
||||
#endif
|
||||
|
||||
|
||||
//
|
||||
// Version 5.0 and below:
|
||||
# if __BORLANDC__ <= 0x0550
|
||||
@@ -48,17 +46,23 @@
|
||||
// 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_CXX11_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:
|
||||
#ifdef __cplusplus
|
||||
#include <climits>
|
||||
#include <cwchar>
|
||||
#else
|
||||
#include <limits.h>
|
||||
#include <wchar.h>
|
||||
#endif // __cplusplus
|
||||
#ifndef WCHAR_MAX
|
||||
# define WCHAR_MAX 0xffff
|
||||
#endif
|
||||
@@ -67,24 +71,10 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// Borland C++ Builder 2006 Update 2 and below:
|
||||
#if (__BORLANDC__ <= 0x582)
|
||||
# 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
|
||||
// Borland C++ Builder 6 and below:
|
||||
#if (__BORLANDC__ <= 0x564)
|
||||
|
||||
# ifdef NDEBUG
|
||||
# if defined(NDEBUG) && defined(__cplusplus)
|
||||
// fix broken <cstring> so that Boost.test works:
|
||||
# include <cstring>
|
||||
# undef strcmp
|
||||
@@ -95,6 +85,8 @@
|
||||
# define errno errno
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
//
|
||||
// new bug in 5.61:
|
||||
#if (__BORLANDC__ >= 0x561) && (__BORLANDC__ <= 0x580)
|
||||
@@ -102,6 +94,14 @@
|
||||
# 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)
|
||||
@@ -113,11 +113,97 @@
|
||||
# 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_CXX11_CHAR16_T
|
||||
# define BOOST_NO_CXX11_CHAR32_T
|
||||
# define BOOST_NO_CXX11_DECLTYPE
|
||||
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
# define BOOST_NO_CXX11_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_CXX11_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS // UTF-8 still not supported
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
|
||||
#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
|
||||
@@ -143,7 +229,7 @@
|
||||
//
|
||||
// check for exception handling support:
|
||||
//
|
||||
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS)
|
||||
#if !defined(_CPPUNWIND) && !defined(BOOST_CPPUNWIND) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
//
|
||||
@@ -155,13 +241,14 @@
|
||||
//
|
||||
// all versions support __declspec:
|
||||
//
|
||||
#ifndef __STRICT_ANSI__
|
||||
# define BOOST_HAS_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:
|
||||
//
|
||||
#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
|
||||
@@ -186,5 +273,15 @@
|
||||
# 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__)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
135
include/boost/config/compiler/clang.hpp
Normal file
135
include/boost/config/compiler/clang.hpp
Normal file
@@ -0,0 +1,135 @@
|
||||
// (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)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI)
|
||||
# define BOOST_NO_RTTI
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID)
|
||||
# define BOOST_NO_TYPEID
|
||||
#endif
|
||||
|
||||
#if defined(__int64)
|
||||
# define BOOST_HAS_MS_INT64
|
||||
#endif
|
||||
|
||||
#define BOOST_HAS_NRVO
|
||||
|
||||
// Clang supports "long long" in all compilation modes.
|
||||
#define BOOST_HAS_LONG_LONG
|
||||
|
||||
#if !__has_feature(cxx_auto_type)
|
||||
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#endif
|
||||
|
||||
#if !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
|
||||
# define BOOST_NO_CXX11_CHAR16_T
|
||||
# define BOOST_NO_CXX11_CHAR32_T
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_constexpr)
|
||||
# define BOOST_NO_CXX11_CONSTEXPR
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_decltype)
|
||||
# define BOOST_NO_CXX11_DECLTYPE
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_decltype_incomplete_return_types)
|
||||
# define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_defaulted_functions)
|
||||
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_deleted_functions)
|
||||
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_explicit_conversions)
|
||||
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_default_function_template_args)
|
||||
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_generalized_initializers)
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_lambdas)
|
||||
# define BOOST_NO_CXX11_LAMBDAS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_local_type_template_args)
|
||||
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_noexcept)
|
||||
# define BOOST_NO_CXX11_NOEXCEPT
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_nullptr)
|
||||
# define BOOST_NO_CXX11_NULLPTR
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_range_for)
|
||||
# define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_raw_string_literals)
|
||||
# define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_generalized_initializers)
|
||||
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_rvalue_references)
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_strong_enums)
|
||||
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_static_assert)
|
||||
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_alias_templates)
|
||||
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_unicode_literals)
|
||||
# define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#endif
|
||||
|
||||
#if !__has_feature(cxx_variadic_templates)
|
||||
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#endif
|
||||
|
||||
// Clang always supports variadic macros
|
||||
// Clang always supports extern templates
|
||||
|
||||
#ifndef BOOST_COMPILER
|
||||
# define BOOST_COMPILER "Clang version " __clang_version__
|
||||
#endif
|
||||
|
||||
// Macro used to identify the Clang compiler.
|
||||
#define BOOST_CLANG 1
|
||||
|
||||
179
include/boost/config/compiler/codegear.hpp
Normal file
179
include/boost/config/compiler/codegear.hpp
Normal file
@@ -0,0 +1,179 @@
|
||||
// (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
|
||||
|
||||
# if defined(NDEBUG) && defined(__cplusplus)
|
||||
// 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_CXX11_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_CXX11_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
|
||||
//
|
||||
// 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_CXX11_HDR_INITIALIZER_LIST
|
||||
|
||||
// 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__)
|
||||
|
||||
@@ -44,19 +44,60 @@
|
||||
#endif
|
||||
|
||||
// See also kai.hpp which checks a Kai-specific symbol for EH
|
||||
# if !defined(__KCC) && !defined(__EXCEPTIONS)
|
||||
# if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_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_CXX11_EXTERN_TEMPLATE
|
||||
#endif
|
||||
#if (__EDG_VERSION__ <= 310)
|
||||
// No support for initializer lists
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#endif
|
||||
#if (__EDG_VERSION__ < 400)
|
||||
# define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#endif
|
||||
|
||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CXX11_CHAR16_T
|
||||
#define BOOST_NO_CXX11_CHAR32_T
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_DECLTYPE
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
|
||||
#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
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,9 +5,9 @@
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
// Dec Alpha True64 C++ compiler setup:
|
||||
// Tru64 C++ compiler setup (now HP):
|
||||
|
||||
#define BOOST_COMPILER "Dec Alpha True64 " BOOST_STRINGIZE(__DECCXX_VER)
|
||||
#define BOOST_COMPILER "HP Tru64 C++ " BOOST_STRINGIZE(__DECCXX_VER)
|
||||
|
||||
#include "boost/config/compiler/common_edg.hpp"
|
||||
|
||||
|
||||
63
include/boost/config/compiler/cray.hpp
Normal file
63
include/boost/config/compiler/cray.hpp
Normal file
@@ -0,0 +1,63 @@
|
||||
// (C) Copyright John Maddock 2011.
|
||||
// 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.
|
||||
|
||||
// Greenhills C compiler setup:
|
||||
|
||||
#define BOOST_COMPILER "Cray C version " BOOST_STRINGIZE(_RELEASE)
|
||||
|
||||
#if _RELEASE < 7
|
||||
# error "Boost is not configured for Cray compilers prior to version 7, please try the configure script."
|
||||
#endif
|
||||
|
||||
//
|
||||
// Check this is a recent EDG based compiler, otherwise we don't support it here:
|
||||
//
|
||||
#ifndef __EDG_VERSION__
|
||||
# error "Unsupported Cray compiler, please try running the configure script."
|
||||
#endif
|
||||
|
||||
#include "boost/config/compiler/common_edg.hpp"
|
||||
|
||||
//
|
||||
// Cray peculiarities, probably version 7 specific:
|
||||
//
|
||||
#undef BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
#undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_HAS_NRVO
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#define BOOST_HAS_NRVO
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DECLTYPE
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
#define BOOST_NO_CXX11_CHAR32_T
|
||||
#define BOOST_NO_CXX11_CHAR16_T
|
||||
//#define BOOST_BCB_PARTIAL_SPECIALIZATION_BUG
|
||||
#define BOOST_MATH_DISABLE_STD_FPCLASSIFY
|
||||
//#define BOOST_HAS_FPCLASSIFY
|
||||
|
||||
#define BOOST_SP_USE_PTHREADS
|
||||
#define BOOST_AC_USE_PTHREADS
|
||||
|
||||
@@ -36,13 +36,67 @@
|
||||
#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?
|
||||
//
|
||||
#ifdef __cplusplus
|
||||
#include <cstddef>
|
||||
#endif
|
||||
#if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD)
|
||||
# define BOOST_NO_STDC_NAMESPACE
|
||||
#endif
|
||||
|
||||
|
||||
// check for exception handling support:
|
||||
#ifndef _CPPUNWIND
|
||||
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
|
||||
#if (__DMC__ < 0x840)
|
||||
//
|
||||
// C++0x features
|
||||
//
|
||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CXX11_CHAR16_T
|
||||
#define BOOST_NO_CXX11_CHAR32_T
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_DECLTYPE
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
|
||||
#if (__DMC__ < 0x812)
|
||||
#define BOOST_NO_CXX11_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 defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# endif
|
||||
|
||||
@@ -42,7 +42,14 @@
|
||||
# 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_CXX11_EXTERN_TEMPLATE
|
||||
// Variadic macros do not exist for gcc versions before 3.0
|
||||
# define BOOST_NO_CXX11_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:
|
||||
//
|
||||
@@ -54,9 +61,31 @@
|
||||
# if __GNUC_MINOR__ < 4
|
||||
# define BOOST_NO_IS_ABSTRACT
|
||||
# endif
|
||||
# define BOOST_NO_CXX11_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
|
||||
|
||||
#ifndef __EXCEPTIONS
|
||||
#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)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
|
||||
@@ -82,17 +111,137 @@
|
||||
#define BOOST_HAS_NRVO
|
||||
#endif
|
||||
|
||||
#define BOOST_COMPILER "GNU C++ version " __VERSION__
|
||||
//
|
||||
// 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 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_CXX11_DECLTYPE
|
||||
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
|
||||
// Variadic templates compiler:
|
||||
// http://www.generic-programming.org/~dgregor/cpp/variadic-templates.html
|
||||
# if defined(__VARIADIC_TEMPLATES) || (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4) && defined(__GXX_EXPERIMENTAL_CXX0X__))
|
||||
# define BOOST_HAS_VARIADIC_TMPL
|
||||
# else
|
||||
# define BOOST_NO_CXX11_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_CXX11_AUTO_DECLARATIONS
|
||||
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
# define BOOST_NO_CXX11_CHAR16_T
|
||||
# define BOOST_NO_CXX11_CHAR32_T
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#endif
|
||||
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4)
|
||||
# define BOOST_NO_SFINAE_EXPR
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.5.0 and later
|
||||
//
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
# define BOOST_NO_CXX11_LAMBDAS
|
||||
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
# define BOOST_NO_CXX11_RAW_LITERALS
|
||||
# define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.5.1 and later
|
||||
//
|
||||
#if (__GNUC__*10000 + __GNUC_MINOR__*100 + __GNUC_PATCHLEVEL__ < 40501) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
// scoped enums have a serious bug in 4.4.0, so define BOOST_NO_CXX11_SCOPED_ENUMS before 4.5.1
|
||||
// See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38064
|
||||
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#endif
|
||||
|
||||
// C++0x features in 4.6.n and later
|
||||
//
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#endif
|
||||
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#endif
|
||||
// C++0x features not supported at all yet
|
||||
//
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
|
||||
#ifndef BOOST_COMPILER
|
||||
# define BOOST_COMPILER "GNU C++ version " __VERSION__
|
||||
#endif
|
||||
|
||||
// ConceptGCC compiler:
|
||||
// http://www.generic-programming.org/software/ConceptGCC/
|
||||
#ifdef __GXX_CONCEPTS__
|
||||
# define BOOST_HAS_CONCEPTS
|
||||
# define BOOST_COMPILER "ConceptGCC version " __VERSION__
|
||||
#endif
|
||||
|
||||
// versions check:
|
||||
// we don't know gcc prior to version 2.90:
|
||||
#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 90)
|
||||
# error "Compiler not configured - please reconfigure"
|
||||
#endif
|
||||
//
|
||||
// last known and checked version is 4.0 (Pre-release):
|
||||
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 0))
|
||||
// last known and checked version is 4.6 (Pre-release):
|
||||
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6))
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# else
|
||||
|
||||
@@ -25,6 +25,36 @@
|
||||
//
|
||||
#define BOOST_HAS_LONG_LONG
|
||||
|
||||
// C++0x features:
|
||||
//
|
||||
# define BOOST_NO_CXX11_CONSTEXPR
|
||||
# define BOOST_NO_CXX11_NULLPTR
|
||||
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
# define BOOST_NO_CXX11_DECLTYPE
|
||||
# define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
# define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
# define BOOST_NO_CXX11_CHAR16_T
|
||||
# define BOOST_NO_CXX11_CHAR32_T
|
||||
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
# define BOOST_NO_SFINAE_EXPR
|
||||
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
# define BOOST_NO_CXX11_LAMBDAS
|
||||
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
# define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
# define BOOST_NO_CXX11_RAW_LITERALS
|
||||
# define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
# define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
|
||||
#define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__
|
||||
|
||||
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||
// (C) Copyright Aleksey Gurtovoy 2002.
|
||||
// (C) Copyright David Abrahams 2002 - 2003.
|
||||
// (C) Copyright Toon Knapen 2003.
|
||||
// (C) Copyright Boris Gubenko 2006.
|
||||
// (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)
|
||||
@@ -14,7 +12,7 @@
|
||||
|
||||
// HP aCC C++ compiler setup:
|
||||
|
||||
#if (__HP_aCC >= 61200) && defined(__EDG__)
|
||||
#if defined(__EDG__)
|
||||
#include "boost/config/compiler/common_edg.hpp"
|
||||
#endif
|
||||
|
||||
@@ -34,7 +32,11 @@
|
||||
# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
|
||||
#endif
|
||||
|
||||
#if (__HP_aCC < 60000)
|
||||
#if (__HP_aCC <= 38000)
|
||||
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#endif
|
||||
|
||||
#if (__HP_aCC > 50000) && (__HP_aCC < 60000)
|
||||
# define BOOST_NO_UNREACHABLE_RETURN_DETECTION
|
||||
# define BOOST_NO_TEMPLATE_TEMPLATES
|
||||
# define BOOST_NO_SWPRINTF
|
||||
@@ -53,6 +55,15 @@
|
||||
# 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_COMPILER "HP aCC version " BOOST_STRINGIZE(__HP_aCC)
|
||||
|
||||
//
|
||||
@@ -61,12 +72,69 @@
|
||||
#if __HP_aCC < 33000
|
||||
# error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
|
||||
//
|
||||
// last known and checked version is 61300:
|
||||
#if (__HP_aCC > 61300)
|
||||
// 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_CXX11_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CXX11_CHAR16_T
|
||||
#define BOOST_NO_CXX11_CHAR32_T
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_DECLTYPE
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_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_CXX11_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)))
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// (C) Copyright John Maddock 2001.
|
||||
// (C) Copyright John Maddock 2001-8.
|
||||
// (C) Copyright Peter Dimov 2001.
|
||||
// (C) Copyright Jens Maurer 2001.
|
||||
// (C) Copyright David Abrahams 2002 - 2003.
|
||||
@@ -26,7 +26,19 @@
|
||||
# define BOOST_INTEL_CXX_VERSION __ECC
|
||||
#endif
|
||||
|
||||
// Flags determined by comparing output of 'icpc -dM -E' with and without '-std=c++0x'
|
||||
#if (!(defined(_WIN32) || defined(_WIN64)) && defined(__STDC_HOSTED__) && (__STDC_HOSTED__ && (BOOST_INTEL_CXX_VERSION <= 1200))) || defined(__GXX_EXPERIMENTAL_CPP0X__)
|
||||
# define BOOST_INTEL_STDCXX0X
|
||||
#endif
|
||||
#if defined(_MSC_VER) && (_MSC_VER >= 1600)
|
||||
# define BOOST_INTEL_STDCXX0X
|
||||
#endif
|
||||
|
||||
#ifdef BOOST_INTEL_STDCXX0X
|
||||
#define BOOST_COMPILER "Intel C++ C++0x mode version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
|
||||
#else
|
||||
#define BOOST_COMPILER "Intel C++ version " BOOST_STRINGIZE(BOOST_INTEL_CXX_VERSION)
|
||||
#endif
|
||||
#define BOOST_INTEL BOOST_INTEL_CXX_VERSION
|
||||
|
||||
#if defined(_WIN32) || defined(_WIN64)
|
||||
@@ -99,13 +111,17 @@
|
||||
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (BOOST_INTEL_CXX_VERSION <= 1200)
|
||||
// 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
|
||||
// in type_traits code among other things, getting this correct
|
||||
// for the Intel compiler is actually remarkably fragile and tricky:
|
||||
//
|
||||
#ifdef __cplusplus
|
||||
#if defined(BOOST_NO_INTRINSIC_WCHAR_T)
|
||||
#include <cwchar>
|
||||
template< typename T > struct assert_no_intrinsic_wchar_t;
|
||||
@@ -119,12 +135,14 @@ template<> struct assert_intrinsic_wchar_t<wchar_t> {};
|
||||
// if you see an error here then define BOOST_NO_INTRINSIC_WCHAR_T on the command line:
|
||||
template<> struct assert_intrinsic_wchar_t<unsigned short> {};
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if _MSC_VER+0 >= 1000
|
||||
#if defined(_MSC_VER) && (_MSC_VER+0 >= 1000)
|
||||
# if _MSC_VER >= 1200
|
||||
# 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
|
||||
@@ -142,17 +160,113 @@ 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
|
||||
|
||||
//
|
||||
// last known and checked version:
|
||||
#if (BOOST_INTEL_CXX_VERSION > 910)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# elif defined(_MSC_VER)
|
||||
# pragma message("Unknown compiler version - please run the configure tests and report the results")
|
||||
// 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)
|
||||
// Apparently Intel 12.1 (compiler version number 9999 !!) has the same issue (compiler regression).
|
||||
#if defined(__INTEL_COMPILER)
|
||||
# if (__INTEL_COMPILER <= 1110) || (__INTEL_COMPILER == 9999)
|
||||
# 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
|
||||
//
|
||||
// C++0x features
|
||||
// - ICC added static_assert in 11.0 (first version with C++0x support)
|
||||
//
|
||||
#if defined(BOOST_INTEL_STDCXX0X)
|
||||
# undef BOOST_NO_CXX11_STATIC_ASSERT
|
||||
//
|
||||
// These pass our test cases, but aren't officially supported according to:
|
||||
// http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
|
||||
//
|
||||
//# undef BOOST_NO_CXX11_LAMBDAS
|
||||
//# undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
//# undef BOOST_NO_CXX11_DECLTYPE
|
||||
//# undef BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
//# undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION >= 1200)
|
||||
//# undef BOOST_NO_CXX11_RVALUE_REFERENCES // Enabling this breaks Filesystem and Exception libraries
|
||||
//# undef BOOST_NO_CXX11_SCOPED_ENUMS // doesn't really work!!
|
||||
# undef BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
# undef BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
# undef BOOST_NO_CXX11_LAMBDAS
|
||||
# undef BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
# undef BOOST_NO_CXX11_DECLTYPE
|
||||
# undef BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
# undef BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#endif
|
||||
|
||||
// icl Version 12.1.0.233 Build 20110811 and possibly some other builds
|
||||
// had an incorrect __INTEL_COMPILER value of 9999. Intel say this has been fixed.
|
||||
#if defined(BOOST_INTEL_STDCXX0X) && (BOOST_INTEL_CXX_VERSION > 1200)
|
||||
# undef BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
# undef BOOST_NO_CXX11_NULLPTR
|
||||
# undef BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
# undef BOOST_NO_SFINAE_EXPR
|
||||
# undef BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
# undef BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
|
||||
// http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler/
|
||||
// continues to list scoped enum support as "Partial"
|
||||
//# undef BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER) && (_MSC_VER <= 1700)
|
||||
//
|
||||
// Although the Intel compiler is capable of supporting these, it appears not to in MSVC compatibility mode:
|
||||
//
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#endif
|
||||
|
||||
#if (BOOST_INTEL_CXX_VERSION < 1200)
|
||||
//
|
||||
// fenv.h appears not to work with Intel prior to 12.0:
|
||||
//
|
||||
# define BOOST_NO_FENV_H
|
||||
#endif
|
||||
|
||||
//
|
||||
// last known and checked version:
|
||||
#if (BOOST_INTEL_CXX_VERSION > 1200)
|
||||
# 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")
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
@@ -17,12 +17,10 @@
|
||||
# endif
|
||||
|
||||
// see also common_edg.hpp which needs a special check for __KCC
|
||||
# if !defined(_EXCEPTIONS)
|
||||
# if !defined(_EXCEPTIONS) && !defined(BOOST_NO_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)
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
// the "|| !defined(BOOST_STRICT_CONFIG)" part should apply to the last
|
||||
// tested version *only*:
|
||||
# if(__MWERKS__ <= 0x3206) || !defined(BOOST_STRICT_CONFIG) // 9.5
|
||||
# if(__MWERKS__ <= 0x3207) || !defined(BOOST_STRICT_CONFIG) // 9.6
|
||||
# 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)
|
||||
#if !__option(exceptions) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
|
||||
@@ -73,6 +73,8 @@
|
||||
# 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
|
||||
@@ -80,6 +82,44 @@
|
||||
# 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_CXX11_RVALUE_REFERENCES
|
||||
#endif
|
||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CXX11_CHAR16_T
|
||||
#define BOOST_NO_CXX11_CHAR32_T
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_DECLTYPE
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
|
||||
#define BOOST_COMPILER "Metrowerks CodeWarrior C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
||||
|
||||
//
|
||||
|
||||
@@ -32,8 +32,43 @@
|
||||
# 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_CXX11_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CXX11_CHAR16_T
|
||||
#define BOOST_NO_CXX11_CHAR32_T
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_DECLTYPE
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
|
||||
//
|
||||
// versions check:
|
||||
// we don't support MPW prior to version 8.9:
|
||||
|
||||
28
include/boost/config/compiler/nvcc.hpp
Normal file
28
include/boost/config/compiler/nvcc.hpp
Normal file
@@ -0,0 +1,28 @@
|
||||
// (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
|
||||
#ifdef __GNUC__
|
||||
|
||||
#include <boost/config/compiler/gcc.hpp>
|
||||
|
||||
#elif defined(_MSC_VER)
|
||||
|
||||
#include <boost/config/compiler/visualc.hpp>
|
||||
|
||||
#endif
|
||||
80
include/boost/config/compiler/pathscale.hpp
Normal file
80
include/boost/config/compiler/pathscale.hpp
Normal file
@@ -0,0 +1,80 @@
|
||||
// (C) Copyright Bryce Lelbach 2011
|
||||
|
||||
// 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.
|
||||
|
||||
// PathScale EKOPath C++ Compiler
|
||||
|
||||
#ifndef BOOST_COMPILER
|
||||
# define BOOST_COMPILER "PathScale EKOPath C++ Compiler version " __PATHSCALE__
|
||||
#endif
|
||||
|
||||
#if __PATHCC__ >= 4
|
||||
# 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_THREADS
|
||||
# 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_CXX11_VARIADIC_TEMPLATES
|
||||
# define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
# define BOOST_NO_SFINAE_EXPR
|
||||
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
# define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
# define BOOST_NO_CXX11_RAW_LITERALS
|
||||
# define BOOST_NO_CXX11_NULLPTR
|
||||
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_NOEXCEPT
|
||||
# define BOOST_NO_CXX11_LAMBDAS
|
||||
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
# define BOOST_NO_CXX11_DECLTYPE
|
||||
# define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
# define BOOST_NO_CXX11_CONSTEXPR
|
||||
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
|
||||
# define BOOST_NO_CXX11_CHAR32_T
|
||||
# define BOOST_NO_CXX11_CHAR16_T
|
||||
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
# define BOOST_NO_CXX11_HDR_THREAD
|
||||
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_CXX11_HDR_REGEX
|
||||
# define BOOST_NO_CXX11_HDR_RATIO
|
||||
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
#endif
|
||||
|
||||
118
include/boost/config/compiler/pgi.hpp
Normal file
118
include/boost/config/compiler/pgi.hpp
Normal file
@@ -0,0 +1,118 @@
|
||||
// (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(BOOST_COMPILER_VERSION)
|
||||
|
||||
//
|
||||
// Threading support:
|
||||
// Turn this on unconditionally here, it will get turned off again later
|
||||
// if no threading API is detected.
|
||||
//
|
||||
|
||||
#if __PGIC__ >= 11
|
||||
|
||||
// options requested by configure --enable-test
|
||||
#define BOOST_HAS_PTHREADS
|
||||
#define BOOST_HAS_THREADS
|
||||
#define BOOST_HAS_PTHREAD_YIELD
|
||||
#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
|
||||
|
||||
#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
|
||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
|
||||
#elif __PGIC__ >= 10
|
||||
|
||||
// options requested by configure --enable-test
|
||||
#define BOOST_HAS_THREADS
|
||||
#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_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CXX11_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_CXX11_CHAR16_T
|
||||
#define BOOST_NO_CXX11_CHAR32_T
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_DECLTYPE
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#define BOOST_NO_SWPRINTF
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
|
||||
#define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
#define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
#define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
#define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
#define BOOST_NO_CXX11_HDR_TUPLE
|
||||
#define BOOST_NO_CXX11_HDR_THREAD
|
||||
#define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
#define BOOST_NO_CXX11_HDR_REGEX
|
||||
#define BOOST_NO_CXX11_HDR_RATIO
|
||||
#define BOOST_NO_CXX11_HDR_RANDOM
|
||||
#define BOOST_NO_CXX11_HDR_MUTEX
|
||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#define BOOST_NO_CXX11_HDR_FUTURE
|
||||
#define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
#define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
#define BOOST_NO_CXX11_HDR_CODECVT
|
||||
#define BOOST_NO_CXX11_HDR_CHRONO
|
||||
#define BOOST_NO_CXX11_HDR_ARRAY
|
||||
|
||||
//
|
||||
// version check:
|
||||
// probably nothing to do here?
|
||||
|
||||
@@ -17,6 +17,11 @@
|
||||
// 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?
|
||||
|
||||
@@ -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 Ganßauge 04 Mar 2002)
|
||||
// (Jens Maurer according to Gottfried Ganssauge 04 Mar 2002)
|
||||
# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
||||
|
||||
// SunPro 5.3 has better support for partial specialization,
|
||||
@@ -69,6 +69,69 @@
|
||||
# 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_CXX11_AUTO_DECLARATIONS
|
||||
#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#define BOOST_NO_CXX11_CHAR16_T
|
||||
#define BOOST_NO_CXX11_CHAR32_T
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_DECLTYPE
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
#define BOOST_COMPILER "Sun compiler version " BOOST_STRINGIZE(__SUNPRO_CC)
|
||||
|
||||
//
|
||||
@@ -78,15 +141,9 @@
|
||||
#error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
//
|
||||
// last known and checked version is 0x570:
|
||||
#if (__SUNPRO_CC > 0x580)
|
||||
// last known and checked version is 0x590:
|
||||
#if (__SUNPRO_CC > 0x590)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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 Schöpflin 2002 - 2003.
|
||||
// (C) Copyright Markus Schoepflin 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
|
||||
@@ -29,6 +29,14 @@
|
||||
# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
|
||||
#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
|
||||
#endif
|
||||
|
||||
//
|
||||
// On AIX thread support seems to be indicated by _THREAD_SAFE:
|
||||
//
|
||||
@@ -45,13 +53,78 @@
|
||||
#error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
//
|
||||
// last known and checked version is 600:
|
||||
#if (__IBMCPP__ > 600)
|
||||
// last known and checked version is 1110:
|
||||
#if (__IBMCPP__ > 1110)
|
||||
# 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
|
||||
#if __IBMCPP__ <= 1010
|
||||
#define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
|
||||
#endif
|
||||
|
||||
//
|
||||
// C++0x features
|
||||
//
|
||||
// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
|
||||
//
|
||||
#if ! __IBMCPP_AUTO_TYPEDEDUCTION
|
||||
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
#endif
|
||||
#if ! __IBMCPP_UTF_LITERAL__
|
||||
# define BOOST_NO_CXX11_CHAR16_T
|
||||
# define BOOST_NO_CXX11_CHAR32_T
|
||||
#endif
|
||||
#if ! __IBMCPP_CONSTEXPR
|
||||
# define BOOST_NO_CXX11_CONSTEXPR
|
||||
#endif
|
||||
#if ! __IBMCPP_DECLTYPE
|
||||
# define BOOST_NO_CXX11_DECLTYPE
|
||||
#else
|
||||
# define BOOST_HAS_DECLTYPE
|
||||
#endif
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#if ! __IBMCPP_EXPLICIT_CONVERSION_OPERATORS
|
||||
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#endif
|
||||
#if ! __IBMCPP_EXTERN_TEMPLATE
|
||||
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
|
||||
#endif
|
||||
#if ! __IBMCPP_VARIADIC_TEMPLATES
|
||||
// not enabled separately at this time
|
||||
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#endif
|
||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#define BOOST_NO_CXX11_LAMBDAS
|
||||
#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_NULLPTR
|
||||
#define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#if ! __IBMCPP_RVALUE_REFERENCES
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
#endif
|
||||
#if ! __IBMCPP_SCOPED_ENUM
|
||||
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#endif
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#if ! __IBMCPP_STATIC_ASSERT
|
||||
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
#endif
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#if ! __IBMCPP_VARIADIC_TEMPLATES
|
||||
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#endif
|
||||
#if ! __C99_MACRO_WITH_VA_ARGS
|
||||
# define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -9,24 +9,54 @@
|
||||
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// See http://www.boost.org for most recent version.
|
||||
|
||||
//
|
||||
// Microsoft Visual C++ compiler setup:
|
||||
//
|
||||
// We need to be careful with the checks in this file, as contrary
|
||||
// to popular belief there are versions with _MSC_VER with the final
|
||||
// digit non-zero (mainly the MIPS cross compiler).
|
||||
//
|
||||
// So we either test _MSC_VER >= XXXX or else _MSC_VER < XXXX.
|
||||
// No other comparisons (==, >, or <=) are safe.
|
||||
//
|
||||
|
||||
#define BOOST_MSVC _MSC_VER
|
||||
|
||||
// turn off the warnings before we #include anything
|
||||
//
|
||||
// Helper macro BOOST_MSVC_FULL_VER for use in Boost code:
|
||||
//
|
||||
#if _MSC_FULL_VER > 100000000
|
||||
# define BOOST_MSVC_FULL_VER _MSC_FULL_VER
|
||||
#else
|
||||
# define BOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10)
|
||||
#endif
|
||||
|
||||
// Attempt to suppress VC6 warnings about the length of decorated names (obsolete):
|
||||
#pragma warning( disable : 4503 ) // warning: decorated name length exceeded
|
||||
|
||||
//
|
||||
// versions check:
|
||||
// we don't support Visual C++ prior to version 6:
|
||||
#if _MSC_VER < 1200
|
||||
# error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
|
||||
#if _MSC_VER < 1300 // 1200 == VC++ 6.0, 1200-1202 == eVC++4
|
||||
# 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
|
||||
// disable min/max macro defines on vc6:
|
||||
//
|
||||
|
||||
# if _MSC_VER == 1202
|
||||
# define BOOST_NO_STD_TYPEINFO
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
#if (_MSC_VER <= 1300) // 1300 == VC++ 7.0
|
||||
/// Visual Studio has no fenv.h
|
||||
#define BOOST_NO_FENV_H
|
||||
|
||||
#if (_MSC_VER < 1310) // 130X == 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
|
||||
@@ -56,8 +86,9 @@
|
||||
# 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)
|
||||
# if (_MSC_VER >= 1300)
|
||||
# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
|
||||
# endif
|
||||
|
||||
@@ -67,24 +98,63 @@
|
||||
// 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_CXX11_EXTERN_TEMPLATE
|
||||
// Variadic macros do not exist for VC7.1 and lower
|
||||
# define BOOST_NO_CXX11_VARIADIC_MACROS
|
||||
#endif
|
||||
|
||||
#if _MSC_VER <= 1400 // 1400 == VC++ 8.0
|
||||
#if defined(UNDER_CE)
|
||||
// Windows CE does not have a conforming signature for swprintf
|
||||
# define BOOST_NO_SWPRINTF
|
||||
#endif
|
||||
|
||||
#if _MSC_VER < 1500 // 140X == VC++ 8.0
|
||||
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
|
||||
#endif
|
||||
|
||||
#if _MSC_VER < 1600 // 150X == VC++ 9.0
|
||||
// A bug in VC9:
|
||||
# define BOOST_NO_ADL_BARRIER
|
||||
#endif
|
||||
|
||||
|
||||
// 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
|
||||
|
||||
#if _MSC_VER < 1600 || !defined(BOOST_STRICT_CONFIG) // 150X == VC++ 9.0
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#endif
|
||||
|
||||
#ifndef _NATIVE_WCHAR_T_DEFINED
|
||||
# define BOOST_NO_INTRINSIC_WCHAR_T
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32_WCE
|
||||
# define BOOST_NO_THREADEX
|
||||
# define BOOST_NO_GETSYSTEMTIMEASFILETIME
|
||||
#if defined(_WIN32_WCE) || defined(UNDER_CE)
|
||||
# define BOOST_NO_SWPRINTF
|
||||
#endif
|
||||
|
||||
// we have ThreadEx or GetSystemTimeAsFileTime unless we're running WindowsCE
|
||||
#if !defined(_WIN32_WCE) && !defined(UNDER_CE)
|
||||
# define BOOST_HAS_THREADEX
|
||||
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
|
||||
#endif
|
||||
|
||||
//
|
||||
// check for exception handling support:
|
||||
#ifndef _CPPUNWIND
|
||||
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
|
||||
# define BOOST_NO_EXCEPTIONS
|
||||
#endif
|
||||
|
||||
@@ -94,8 +164,10 @@
|
||||
#if (_MSC_VER >= 1200)
|
||||
# define BOOST_HAS_MS_INT64
|
||||
#endif
|
||||
#if (_MSC_VER >= 1310) && defined(_MSC_EXTENSIONS)
|
||||
#if (_MSC_VER >= 1310) && (defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400))
|
||||
# define BOOST_HAS_LONG_LONG
|
||||
#else
|
||||
# define BOOST_NO_LONG_LONG
|
||||
#endif
|
||||
#if (_MSC_VER >= 1400) && !defined(_DEBUG)
|
||||
# define BOOST_HAS_NRVO
|
||||
@@ -104,14 +176,59 @@
|
||||
// disable Win32 API's if compiler extentions are
|
||||
// turned off:
|
||||
//
|
||||
#ifndef _MSC_EXTENSIONS
|
||||
#if !defined(_MSC_EXTENSIONS) && !defined(BOOST_DISABLE_WIN32)
|
||||
# define BOOST_DISABLE_WIN32
|
||||
#endif
|
||||
#if !defined(_CPPRTTI) && !defined(BOOST_NO_RTTI)
|
||||
# define BOOST_NO_RTTI
|
||||
#endif
|
||||
|
||||
//
|
||||
// all versions support __declspec:
|
||||
// C++0x features
|
||||
//
|
||||
#define BOOST_HAS_DECLSPEC
|
||||
// See above for BOOST_NO_LONG_LONG
|
||||
|
||||
// C++ features supported by VC++ 10 (aka 2010)
|
||||
//
|
||||
#if _MSC_VER < 1600
|
||||
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
|
||||
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
# define BOOST_NO_CXX11_LAMBDAS
|
||||
# define BOOST_NO_CXX11_RVALUE_REFERENCES
|
||||
# define BOOST_NO_CXX11_STATIC_ASSERT
|
||||
# define BOOST_NO_CXX11_NULLPTR
|
||||
# define BOOST_NO_CXX11_DECLTYPE
|
||||
#endif // _MSC_VER < 1600
|
||||
|
||||
#if _MSC_VER >= 1600
|
||||
# define BOOST_HAS_STDINT_H
|
||||
#endif
|
||||
|
||||
// C++ features supported by VC++ 11 (aka 2012)
|
||||
//
|
||||
#if _MSC_VER < 1700
|
||||
# define BOOST_NO_CXX11_RANGE_BASED_FOR
|
||||
# define BOOST_NO_CXX11_SCOPED_ENUMS
|
||||
#endif // _MSC_VER < 1700
|
||||
|
||||
// C++0x features not supported by any versions
|
||||
#define BOOST_NO_CXX11_CHAR16_T
|
||||
#define BOOST_NO_CXX11_CHAR32_T
|
||||
#define BOOST_NO_CXX11_CONSTEXPR
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276
|
||||
#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_DELETED_FUNCTIONS
|
||||
#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
|
||||
#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
#define BOOST_NO_CXX11_NOEXCEPT
|
||||
#define BOOST_NO_CXX11_RAW_LITERALS
|
||||
#define BOOST_NO_CXX11_TEMPLATE_ALIASES
|
||||
#define BOOST_NO_CXX11_UNICODE_LITERALS
|
||||
#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
|
||||
#define BOOST_NO_SFINAE_EXPR
|
||||
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
|
||||
#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
|
||||
//
|
||||
// prefix and suffix headers:
|
||||
//
|
||||
@@ -122,6 +239,7 @@
|
||||
# define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp"
|
||||
#endif
|
||||
|
||||
#ifndef BOOST_COMPILER
|
||||
// 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
|
||||
@@ -133,8 +251,21 @@
|
||||
// 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
|
||||
# elif _MSC_VER < 1400
|
||||
// Note: I'm not aware of any CE compiler with version 13xx
|
||||
# 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
|
||||
# elif _MSC_VER < 1500
|
||||
# define BOOST_COMPILER_VERSION evc8
|
||||
# elif _MSC_VER < 1600
|
||||
# define BOOST_COMPILER_VERSION evc9
|
||||
# elif _MSC_VER < 1700
|
||||
# define BOOST_COMPILER_VERSION evc10
|
||||
# elif _MSC_VER < 1800
|
||||
# define BOOST_COMPILER_VERSION evc11
|
||||
# else
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown EVC++ compiler version - please run the configure tests and report the results"
|
||||
@@ -148,28 +279,29 @@
|
||||
# define BOOST_COMPILER_VERSION 5.0
|
||||
# elif _MSC_VER < 1300
|
||||
# define BOOST_COMPILER_VERSION 6.0
|
||||
# elif _MSC_VER == 1300
|
||||
# elif _MSC_VER < 1310
|
||||
# define BOOST_COMPILER_VERSION 7.0
|
||||
# elif _MSC_VER == 1310
|
||||
# elif _MSC_VER < 1400
|
||||
# define BOOST_COMPILER_VERSION 7.1
|
||||
# elif _MSC_VER == 1400
|
||||
# elif _MSC_VER < 1500
|
||||
# define BOOST_COMPILER_VERSION 8.0
|
||||
# elif _MSC_VER < 1600
|
||||
# define BOOST_COMPILER_VERSION 9.0
|
||||
# elif _MSC_VER < 1700
|
||||
# define BOOST_COMPILER_VERSION 10.0
|
||||
# elif _MSC_VER < 1800
|
||||
# define BOOST_COMPILER_VERSION 11.0
|
||||
# else
|
||||
# define BOOST_COMPILER_VERSION _MSC_VER
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
||||
# define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
|
||||
#endif
|
||||
|
||||
//
|
||||
// versions check:
|
||||
// we don't support Visual C++ prior to version 6:
|
||||
#if _MSC_VER < 1200
|
||||
#error "Compiler not supported or configured - please reconfigure"
|
||||
#endif
|
||||
//
|
||||
// last known and checked version is 1400 (VC8):
|
||||
#if (_MSC_VER > 1400)
|
||||
// last known and checked version is 1700 (VC11, aka 2011):
|
||||
#if (_MSC_VER > 1700)
|
||||
# if defined(BOOST_ASSERT_CONFIG)
|
||||
# error "Unknown compiler version - please run the configure tests and report the results"
|
||||
# else
|
||||
|
||||
28
include/boost/config/no_tr1/cmath.hpp
Normal file
28
include/boost/config/no_tr1/cmath.hpp
Normal file
@@ -0,0 +1,28 @@
|
||||
// (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
|
||||
@@ -36,20 +36,33 @@
|
||||
// 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__)
|
||||
#if (defined(__FreeBSD__) && (__FreeBSD__ <= 3))\
|
||||
|| defined(__OpenBSD__) || defined(__DragonFly__)
|
||||
# define BOOST_HAS_PTHREADS
|
||||
#endif
|
||||
|
||||
//
|
||||
// No wide character support in the BSD header files:
|
||||
//
|
||||
#if !(defined(__FreeBSD__) && (__FreeBSD__ >= 5))
|
||||
#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__))
|
||||
# define BOOST_NO_CWCHAR
|
||||
#endif
|
||||
//
|
||||
// The BSD <ctype.h> has macros only, no functions:
|
||||
//
|
||||
#if !defined(__OpenBSD__)
|
||||
#if !defined(__OpenBSD__) || defined(__DragonFly__)
|
||||
# define BOOST_NO_CTYPE_FUNCTIONS
|
||||
#endif
|
||||
|
||||
|
||||
18
include/boost/config/platform/cray.hpp
Normal file
18
include/boost/config/platform/cray.hpp
Normal file
@@ -0,0 +1,18 @@
|
||||
// (C) Copyright John Maddock 2011.
|
||||
// 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.
|
||||
|
||||
// SGI Irix specific config options:
|
||||
|
||||
#define BOOST_PLATFORM "Cray"
|
||||
|
||||
// boilerplate code:
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
#include <boost/config/posix_features.hpp>
|
||||
|
||||
|
||||
|
||||
@@ -8,10 +8,9 @@
|
||||
// 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:
|
||||
@@ -40,9 +39,20 @@
|
||||
#define BOOST_HAS_STDINT_H
|
||||
#endif
|
||||
|
||||
/// Cygwin has no fenv.h
|
||||
#define BOOST_NO_FENV_H
|
||||
|
||||
// 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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
// (C) Copyright Jens Maurer 2001 - 2003.
|
||||
// (C) Copyright David Abrahams 2002.
|
||||
// (C) Copyright Toon Knapen 2003.
|
||||
// (C) Copyright Boris Gubenko 2006.
|
||||
// (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)
|
||||
@@ -23,6 +23,8 @@
|
||||
|
||||
#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
|
||||
|
||||
@@ -72,7 +74,9 @@
|
||||
# define BOOST_HAS_SIGACTION
|
||||
#endif
|
||||
#ifndef BOOST_HAS_NRVO
|
||||
# define BOOST_HAS_NRVO
|
||||
# ifndef __parisc
|
||||
# define BOOST_HAS_NRVO
|
||||
# endif
|
||||
#endif
|
||||
#ifndef BOOST_HAS_LOG1P
|
||||
# define BOOST_HAS_LOG1P
|
||||
@@ -81,5 +85,3 @@
|
||||
# define BOOST_HAS_EXPM1
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -11,7 +11,11 @@
|
||||
#define BOOST_PLATFORM "linux"
|
||||
|
||||
// make sure we have __GLIBC_PREREQ if available at all
|
||||
#ifdef __cplusplus
|
||||
#include <cstdlib>
|
||||
#else
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
|
||||
//
|
||||
// <stdint.h> added to glibc 2.1.1
|
||||
@@ -68,6 +72,7 @@
|
||||
// boilerplate code:
|
||||
#define BOOST_HAS_UNISTD_H
|
||||
#include <boost/config/posix_features.hpp>
|
||||
#define BOOST_HAS_PTHREAD_YIELD
|
||||
|
||||
#ifndef __GNUC__
|
||||
//
|
||||
|
||||
@@ -47,6 +47,14 @@
|
||||
# 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.
|
||||
@@ -56,16 +64,17 @@
|
||||
# if ( defined(TARGET_API_MAC_CARBON) && TARGET_API_MAC_CARBON ) || ( defined(TARGET_CARBON) && TARGET_CARBON )
|
||||
|
||||
# if !defined(BOOST_HAS_PTHREADS)
|
||||
# define BOOST_HAS_MPTASKS
|
||||
// MPTasks support is deprecated/removed from Boost:
|
||||
//# define BOOST_HAS_MPTASKS
|
||||
# elif ( __dest_os == __mac_os_x )
|
||||
// We are doing a Carbon/Mach-O/MSL build which has pthreads, but only the
|
||||
// gettimeofday and no posix.
|
||||
# define BOOST_HAS_GETTIMEOFDAY
|
||||
# endif
|
||||
|
||||
// The MP task implementation of Boost Threads aims to replace MP-unsafe
|
||||
// parts of the MSL, so we turn on threads unconditionally.
|
||||
# define BOOST_HAS_THREADS
|
||||
#ifdef BOOST_HAS_PTHREADS
|
||||
# define BOOST_HAS_THREADS
|
||||
#endif
|
||||
|
||||
// The remote call manager depends on this.
|
||||
# define BOOST_BIND_ENABLE_PASCAL
|
||||
|
||||
@@ -16,6 +16,13 @@
|
||||
#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
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
97
include/boost/config/platform/symbian.hpp
Normal file
97
include/boost/config/platform/symbian.hpp
Normal file
@@ -0,0 +1,97 @@
|
||||
// (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
|
||||
#ifdef __cplusplus
|
||||
#include <cstdlib>
|
||||
#else
|
||||
#include <stdlib.h>
|
||||
#endif// 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
|
||||
|
||||
|
||||
25
include/boost/config/platform/vms.hpp
Normal file
25
include/boost/config/platform/vms.hpp
Normal file
@@ -0,0 +1,25 @@
|
||||
// (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
|
||||
31
include/boost/config/platform/vxworks.hpp
Normal file
31
include/boost/config/platform/vxworks.hpp
Normal file
@@ -0,0 +1,31 @@
|
||||
// (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>
|
||||
|
||||
@@ -21,8 +21,14 @@
|
||||
# define BOOST_NO_SWPRINTF
|
||||
#endif
|
||||
|
||||
#if !defined(__GNUC__) && !defined(BOOST_HAS_DECLSPEC)
|
||||
// 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
|
||||
# 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)))
|
||||
@@ -32,6 +38,11 @@
|
||||
# define BOOST_HAS_UNISTD_H
|
||||
#endif
|
||||
|
||||
#if defined(__MINGW32__) && (__GNUC__ >= 4)
|
||||
# define BOOST_HAS_EXPM1
|
||||
# define BOOST_HAS_LOG1P
|
||||
# define BOOST_HAS_GETTIMEOFDAY
|
||||
#endif
|
||||
//
|
||||
// Win32 will normally be using native Win32 threads,
|
||||
// but there is a pthread library avaliable as an option,
|
||||
@@ -44,6 +55,8 @@
|
||||
|
||||
#ifdef _WIN32_WCE
|
||||
# define BOOST_NO_ANSI_APIS
|
||||
#else
|
||||
# define BOOST_HAS_GETSYSTEMTIMEASFILETIME
|
||||
#endif
|
||||
|
||||
#ifndef BOOST_HAS_PTHREADS
|
||||
|
||||
@@ -2,12 +2,13 @@
|
||||
|
||||
// (C) Copyright John Maddock 2001 - 2003.
|
||||
// (C) Copyright Martin Wille 2003.
|
||||
// (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)
|
||||
// (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.
|
||||
// See http://www.boost.org/ for most recent version.
|
||||
|
||||
// locate which compiler we are using and define
|
||||
// BOOST_COMPILER_CONFIG as needed:
|
||||
@@ -16,10 +17,26 @@
|
||||
// GCC-XML emulates other compilers, it has to appear first here!
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/gcc_xml.hpp"
|
||||
|
||||
#elif defined(_CRAYC)
|
||||
// EDG based Cray compiler:
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/cray.hpp"
|
||||
|
||||
#elif defined __CUDACC__
|
||||
// NVIDIA CUDA C++ compiler for GPU
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/nvcc.hpp"
|
||||
|
||||
#elif defined __COMO__
|
||||
// Comeau C++
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/comeau.hpp"
|
||||
|
||||
#elif defined(__PATHSCALE__) && (__PATHCC__ >= 4)
|
||||
// PathScale EKOPath compiler (has to come before clang and gcc)
|
||||
# define BOOST_COMPILER_CONFIG "boost/config/compiler/pathscale.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"
|
||||
@@ -48,6 +65,10 @@
|
||||
// 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"
|
||||
@@ -72,6 +93,10 @@
|
||||
// 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++
|
||||
//
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
// <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__)
|
||||
// linux:
|
||||
#if (defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__)) && !defined(_CRAYC)
|
||||
// linux, also other platforms (Hurd etc) that use GLIBC, should these really have their own config headers though?
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/linux.hpp"
|
||||
|
||||
#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
|
||||
@@ -61,6 +61,21 @@
|
||||
// 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(_CRAYC)
|
||||
// Cray:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/cray.hpp"
|
||||
|
||||
#elif defined(__VMS)
|
||||
// VMS:
|
||||
# define BOOST_PLATFORM_CONFIG "boost/config/platform/vms.hpp"
|
||||
#else
|
||||
|
||||
# if defined(unix) \
|
||||
|
||||
@@ -11,13 +11,14 @@
|
||||
|
||||
// locate which std lib we are using and define BOOST_STDLIB_CONFIG as needed:
|
||||
|
||||
// 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 <boost/config/no_tr1/utility.hpp>
|
||||
// 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.)
|
||||
#ifdef __cplusplus
|
||||
# include <cstddef>
|
||||
#else
|
||||
# include <stddef.h>
|
||||
#endif
|
||||
|
||||
#if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)
|
||||
// STLPort library; this _must_ come first, otherwise since
|
||||
@@ -25,7 +26,17 @@
|
||||
// can end up detecting that first rather than STLport:
|
||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/stlport.hpp"
|
||||
|
||||
#elif defined(__LIBCOMO__)
|
||||
#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__)
|
||||
// Comeau STL:
|
||||
#define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcomo.hpp"
|
||||
|
||||
@@ -33,6 +44,10 @@
|
||||
// Rogue Wave library:
|
||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/roguewave.hpp"
|
||||
|
||||
#elif defined(_LIBCPP_VERSION)
|
||||
// libc++
|
||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libcpp.hpp"
|
||||
|
||||
#elif defined(__GLIBCPP__) || defined(__GLIBCXX__)
|
||||
// GNU libstdc++ 3
|
||||
# define BOOST_STDLIB_CONFIG "boost/config/stdlib/libstdcpp3.hpp"
|
||||
@@ -64,5 +79,7 @@
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -55,8 +55,10 @@
|
||||
# define BOOST_HAS_MACRO_USE_FACET
|
||||
# ifndef _CPPLIB_VER
|
||||
// Updated Dinkum library defines this, and provides
|
||||
// its own min and max definitions.
|
||||
# define BOOST_NO_STD_MIN_MAX
|
||||
// its own min and max definitions, as does MTA version.
|
||||
# ifndef __MTA__
|
||||
# define BOOST_NO_STD_MIN_MAX
|
||||
# endif
|
||||
# define BOOST_NO_MS_INT64_NUMERIC_LIMITS
|
||||
# endif
|
||||
#endif
|
||||
@@ -84,6 +86,46 @@
|
||||
# define BOOST_NO_STD_LOCALE
|
||||
#endif
|
||||
|
||||
#include <typeinfo>
|
||||
#if ( (!_HAS_EXCEPTIONS && !defined(__ghs__)) || (!_HAS_NAMESPACE && defined(__ghs__)) )
|
||||
# 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_CXX11_HDR_ARRAY
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||
# define BOOST_NO_CXX11_HDR_REGEX
|
||||
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_SMART_PTR
|
||||
#endif
|
||||
|
||||
#if (!defined(_HAS_TR1_IMPORTS) || (_HAS_TR1_IMPORTS+0 == 0)) && !defined(BOOST_NO_CXX11_HDR_TUPLE)
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
#endif
|
||||
//
|
||||
// C++0x headers not yet (fully) implemented:
|
||||
//
|
||||
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
# define BOOST_NO_CXX11_HDR_RATIO
|
||||
# define BOOST_NO_CXX11_HDR_THREAD
|
||||
# define BOOST_NO_CXX11_ALLOCATOR
|
||||
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
|
||||
#ifdef _CPPLIB_VER
|
||||
# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER
|
||||
#else
|
||||
|
||||
@@ -33,6 +33,32 @@
|
||||
# define BOOST_HAS_SLIST
|
||||
#endif
|
||||
|
||||
// C++0x headers not yet implemented
|
||||
//
|
||||
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||
# define BOOST_NO_CXX11_HDR_RATIO
|
||||
# define BOOST_NO_CXX11_HDR_REGEX
|
||||
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_CXX11_HDR_THREAD
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_ALLOCATOR
|
||||
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
# define BOOST_NO_CXX11_SMART_PTR
|
||||
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||
|
||||
//
|
||||
// Intrinsic type_traits support.
|
||||
// The SGI STL has it's own __type_traits class, which
|
||||
|
||||
37
include/boost/config/stdlib/libcpp.hpp
Normal file
37
include/boost/config/stdlib/libcpp.hpp
Normal file
@@ -0,0 +1,37 @@
|
||||
// (C) Copyright Christopher Jefferson 2011.
|
||||
// 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.
|
||||
|
||||
// config for libc++
|
||||
// Might need more in here later.
|
||||
|
||||
#if !defined(_LIBCPP_VERSION)
|
||||
# include <ciso646>
|
||||
# if !defined(_LIBCPP_VERSION)
|
||||
# error "This is not libc++!"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#define BOOST_STDLIB "libc++ version " BOOST_STRINGIZE(_LIBCPP_VERSION)
|
||||
|
||||
#define BOOST_HAS_THREADS
|
||||
|
||||
#ifdef _LIBCPP_HAS_NO_VARIADICS
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
#endif
|
||||
|
||||
//
|
||||
// These appear to be unusable/incomplete so far:
|
||||
//
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
|
||||
// libc++ uses a non-standard messages_base
|
||||
#define BOOST_NO_STD_MESSAGES
|
||||
|
||||
// --- end ---
|
||||
@@ -9,6 +9,8 @@
|
||||
// config for libstdc++ v3
|
||||
// not much to go in here:
|
||||
|
||||
#define BOOST_GNU_STDLIB 1
|
||||
|
||||
#ifdef __GLIBCXX__
|
||||
#define BOOST_STDLIB "GNU libstdc++ version " BOOST_STRINGIZE(__GLIBCXX__)
|
||||
#else
|
||||
@@ -31,7 +33,9 @@
|
||||
|
||||
#ifdef __GLIBCXX__ // gcc 3.4 and greater:
|
||||
# if defined(_GLIBCXX_HAVE_GTHR_DEFAULT) \
|
||||
|| defined(_GLIBCXX__PTHREADS)
|
||||
|| defined(_GLIBCXX__PTHREADS) \
|
||||
|| defined(_GLIBCXX_HAS_GTHREADS) \
|
||||
|| defined(_WIN32)
|
||||
//
|
||||
// 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
|
||||
@@ -54,7 +58,6 @@
|
||||
# define BOOST_HAS_THREADS
|
||||
#endif
|
||||
|
||||
|
||||
#if !defined(_GLIBCPP_USE_LONG_LONG) \
|
||||
&& !defined(_GLIBCXX_USE_LONG_LONG)\
|
||||
&& defined(BOOST_HAS_LONG_LONG)
|
||||
@@ -63,11 +66,100 @@
|
||||
# undef BOOST_HAS_LONG_LONG
|
||||
#endif
|
||||
|
||||
// Apple doesn't seem to reliably defined a *unix* macro
|
||||
#if !defined(CYGWIN) && ( defined(__unix__) \
|
||||
|| defined(__unix) \
|
||||
|| defined(unix) \
|
||||
|| defined(__APPLE__) \
|
||||
|| defined(__APPLE) \
|
||||
|| defined(APPLE))
|
||||
# include <unistd.h>
|
||||
#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>
|
||||
# define BOOST_HASH_SET_HEADER <ext/hash_set>
|
||||
# define BOOST_HASH_MAP_HEADER <ext/hash_map>
|
||||
# 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_CXX11_HDR_ARRAY
|
||||
# define BOOST_NO_CXX11_HDR_REGEX
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||
#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_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
# define BOOST_NO_CXX11_HDR_RATIO
|
||||
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_CXX11_SMART_PTR
|
||||
#else
|
||||
# define BOOST_HAS_TR1_COMPLEX_INVERSE_TRIG
|
||||
# define BOOST_HAS_TR1_COMPLEX_OVERLOADS
|
||||
#endif
|
||||
|
||||
#if (!defined(_GLIBCXX_HAS_GTHREADS) || !defined(_GLIBCXX_USE_C99_STDINT_TR1)) && (!defined(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE) || !defined(BOOST_NO_CXX11_HDR_MUTEX))
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
#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_CXX11_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||
#endif
|
||||
|
||||
// C++0x features in GCC 4.6.0 and later
|
||||
//
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
#endif
|
||||
|
||||
// C++0x features in GCC 4.7.0 and later
|
||||
//
|
||||
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
// Note that although <chrono> existed prior to 4.7, "stead_clock" is spelled "monotonic_clock"
|
||||
// so 4.7.0 is the first truely conforming one.
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_ALLOCATOR
|
||||
#endif
|
||||
// C++0x headers not yet (fully!) implemented
|
||||
//
|
||||
# define BOOST_NO_CXX11_HDR_THREAD
|
||||
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
|
||||
// --- end ---
|
||||
|
||||
@@ -22,6 +22,32 @@
|
||||
#define BOOST_NO_STD_WSTRING
|
||||
#endif
|
||||
|
||||
// C++0x headers not yet implemented
|
||||
//
|
||||
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||
# define BOOST_NO_CXX11_HDR_RATIO
|
||||
# define BOOST_NO_CXX11_HDR_REGEX
|
||||
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_CXX11_HDR_THREAD
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_ALLOCATOR
|
||||
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
# define BOOST_NO_CXX11_SMART_PTR
|
||||
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||
|
||||
#define BOOST_STDLIB "Modena C++ standard library"
|
||||
|
||||
|
||||
|
||||
@@ -46,6 +46,31 @@
|
||||
# define BOOST_HAS_TWO_ARG_USE_FACET
|
||||
#endif
|
||||
|
||||
// C++0x headers not yet implemented
|
||||
//
|
||||
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||
# define BOOST_NO_CXX11_HDR_RATIO
|
||||
# define BOOST_NO_CXX11_HDR_REGEX
|
||||
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_CXX11_HDR_THREAD
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_ALLOCATOR
|
||||
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
# define BOOST_NO_CXX11_SMART_PTR
|
||||
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||
|
||||
#define BOOST_STDLIB "Metrowerks Standard Library version " BOOST_STRINGIZE(__MSL_CPP__)
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
// (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)
|
||||
@@ -9,6 +10,8 @@
|
||||
|
||||
// Rogue Wave std lib:
|
||||
|
||||
#define BOOST_RW_STDLIB 1
|
||||
|
||||
#if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
|
||||
# include <boost/config/no_tr1/utility.hpp>
|
||||
# if !defined(__STD_RWCOMPILER_H__) && !defined(_RWSTD_VER)
|
||||
@@ -28,8 +31,14 @@
|
||||
|
||||
#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
|
||||
# define BOOST_STDLIB "Rogue Wave standard library version " BOOST_STRINGIZE(_RWSTD_VER)
|
||||
# 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
|
||||
#endif
|
||||
|
||||
//
|
||||
@@ -125,3 +134,53 @@
|
||||
#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
|
||||
|
||||
#if _RWSTD_VER < 0x05000000
|
||||
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||
#endif
|
||||
// type_traits header is incomplete:
|
||||
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
//
|
||||
// C++0x headers not yet implemented
|
||||
//
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||
# define BOOST_NO_CXX11_HDR_RATIO
|
||||
# define BOOST_NO_CXX11_HDR_REGEX
|
||||
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_CXX11_HDR_THREAD
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_ALLOCATOR
|
||||
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
# define BOOST_NO_CXX11_SMART_PTR
|
||||
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||
|
||||
|
||||
@@ -40,6 +40,17 @@
|
||||
# define BOOST_NO_STRINGSTREAM
|
||||
#endif
|
||||
|
||||
// Apple doesn't seem to reliably defined a *unix* macro
|
||||
#if !defined(CYGWIN) && ( defined(__unix__) \
|
||||
|| defined(__unix) \
|
||||
|| defined(unix) \
|
||||
|| defined(__APPLE__) \
|
||||
|| defined(__APPLE) \
|
||||
|| defined(APPLE))
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
|
||||
//
|
||||
// Assume no std::locale without own iostreams (this may be an
|
||||
// incorrect assumption in some cases):
|
||||
@@ -105,6 +116,32 @@
|
||||
//
|
||||
#define BOOST_HAS_SGI_TYPE_TRAITS
|
||||
|
||||
// C++0x headers not yet implemented
|
||||
//
|
||||
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||
# define BOOST_NO_CXX11_HDR_RATIO
|
||||
# define BOOST_NO_CXX11_HDR_REGEX
|
||||
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_CXX11_HDR_THREAD
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_ALLOCATOR
|
||||
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
# define BOOST_NO_CXX11_SMART_PTR
|
||||
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||
|
||||
#define BOOST_STDLIB "SGI standard library"
|
||||
|
||||
|
||||
|
||||
@@ -10,12 +10,22 @@
|
||||
// STLPort standard library config:
|
||||
|
||||
#if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
|
||||
# include <boost/config/no_tr1/utility.hpp>
|
||||
# include <cstddef>
|
||||
# if !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION)
|
||||
# error "This is not STLPort!"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// Apple doesn't seem to reliably defined a *unix* macro
|
||||
#if !defined(CYGWIN) && ( defined(__unix__) \
|
||||
|| defined(__unix) \
|
||||
|| defined(unix) \
|
||||
|| defined(__APPLE__) \
|
||||
|| defined(__APPLE) \
|
||||
|| defined(APPLE))
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
//
|
||||
// __STL_STATIC_CONST_INIT_BUG implies BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
|
||||
// for versions prior to 4.1(beta)
|
||||
@@ -61,6 +71,10 @@
|
||||
# endif
|
||||
#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:
|
||||
@@ -98,8 +112,10 @@
|
||||
//
|
||||
// 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::,
|
||||
@@ -190,6 +206,32 @@ 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_CXX11_HDR_ARRAY
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||
# define BOOST_NO_CXX11_HDR_RATIO
|
||||
# define BOOST_NO_CXX11_HDR_REGEX
|
||||
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_CXX11_HDR_THREAD
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_ALLOCATOR
|
||||
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
# define BOOST_NO_CXX11_SMART_PTR
|
||||
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||
|
||||
#define BOOST_STDLIB "STLPort standard library version " BOOST_STRINGIZE(__SGI_STL_PORT)
|
||||
|
||||
|
||||
|
||||
@@ -12,6 +12,42 @@
|
||||
#define BOOST_HAS_MACRO_USE_FACET
|
||||
#define BOOST_NO_STD_MESSAGES
|
||||
|
||||
// Apple doesn't seem to reliably defined a *unix* macro
|
||||
#if !defined(CYGWIN) && ( defined(__unix__) \
|
||||
|| defined(__unix) \
|
||||
|| defined(unix) \
|
||||
|| defined(__APPLE__) \
|
||||
|| defined(__APPLE) \
|
||||
|| defined(APPLE))
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
// C++0x headers not yet implemented
|
||||
//
|
||||
# define BOOST_NO_CXX11_HDR_ARRAY
|
||||
# define BOOST_NO_CXX11_HDR_CHRONO
|
||||
# define BOOST_NO_CXX11_HDR_CODECVT
|
||||
# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
# define BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
# define BOOST_NO_CXX11_HDR_FUTURE
|
||||
# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_CXX11_HDR_MUTEX
|
||||
# define BOOST_NO_CXX11_HDR_RANDOM
|
||||
# define BOOST_NO_CXX11_HDR_RATIO
|
||||
# define BOOST_NO_CXX11_HDR_REGEX
|
||||
# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
|
||||
# define BOOST_NO_CXX11_HDR_THREAD
|
||||
# define BOOST_NO_CXX11_HDR_TUPLE
|
||||
# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
|
||||
# define BOOST_NO_CXX11_HDR_TYPEINDEX
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
# define BOOST_NO_CXX11_HDR_UNORDERED_SET
|
||||
# define BOOST_NO_CXX11_NUMERIC_LIMITS
|
||||
# define BOOST_NO_CXX11_ALLOCATOR
|
||||
# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
# define BOOST_NO_CXX11_SMART_PTR
|
||||
# define BOOST_NO_CXX11_HDR_FUNCTIONAL
|
||||
|
||||
#define BOOST_STDLIB "Visual Age default standard library"
|
||||
|
||||
|
||||
|
||||
@@ -1,21 +1,22 @@
|
||||
// Boost config.hpp configuration header file ------------------------------//
|
||||
|
||||
// (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)
|
||||
// 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)
|
||||
|
||||
// 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
|
||||
@@ -24,17 +25,40 @@
|
||||
#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) \
|
||||
#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
|
||||
#endif
|
||||
|
||||
@@ -45,7 +69,6 @@
|
||||
# undef BOOST_NO_CTYPE_FUNCTIONS
|
||||
#endif
|
||||
|
||||
|
||||
//
|
||||
// Assume any extensions are in namespace std:: unless stated otherwise:
|
||||
//
|
||||
@@ -121,6 +144,15 @@
|
||||
# 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:
|
||||
@@ -148,6 +180,13 @@
|
||||
# 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:
|
||||
//
|
||||
@@ -207,7 +246,8 @@
|
||||
// from here then add to the appropriate compiler section):
|
||||
//
|
||||
#if (defined(__MT__) || defined(_MT) || defined(_REENTRANT) \
|
||||
|| defined(_PTHREADS)) && !defined(BOOST_HAS_THREADS)
|
||||
|| defined(_PTHREADS) || defined(__APPLE__) || defined(__DragonFly__)) \
|
||||
&& !defined(BOOST_HAS_THREADS)
|
||||
# define BOOST_HAS_THREADS
|
||||
#endif
|
||||
|
||||
@@ -233,6 +273,8 @@
|
||||
#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
|
||||
@@ -256,11 +298,11 @@
|
||||
// Define BOOST_NO_SLIST and BOOST_NO_HASH if required.
|
||||
// Note that this is for backwards compatibility only.
|
||||
//
|
||||
# ifndef BOOST_HAS_SLIST
|
||||
# if !defined(BOOST_HAS_SLIST) && !defined(BOOST_NO_SLIST)
|
||||
# define BOOST_NO_SLIST
|
||||
# endif
|
||||
|
||||
# ifndef BOOST_HAS_HASH
|
||||
# if !defined(BOOST_HAS_HASH) && !defined(BOOST_NO_HASH)
|
||||
# define BOOST_NO_HASH
|
||||
# endif
|
||||
|
||||
@@ -305,7 +347,7 @@
|
||||
// works as expected with standard conforming compilers. The resulting
|
||||
// double inclusion of <cstddef> is harmless.
|
||||
|
||||
# ifdef BOOST_NO_STDC_NAMESPACE
|
||||
# if defined(BOOST_NO_STDC_NAMESPACE) && defined(__cplusplus)
|
||||
# include <cstddef>
|
||||
namespace std { using ::ptrdiff_t; using ::size_t; }
|
||||
# endif
|
||||
@@ -324,7 +366,7 @@
|
||||
|
||||
// BOOST_NO_STD_MIN_MAX workaround -----------------------------------------//
|
||||
|
||||
# ifdef BOOST_NO_STD_MIN_MAX
|
||||
# if defined(BOOST_NO_STD_MIN_MAX) && defined(__cplusplus)
|
||||
|
||||
namespace std {
|
||||
template <class _Tp>
|
||||
@@ -362,7 +404,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 analagous.
|
||||
// Use for BOOST_HAS_FACET is analogous.
|
||||
|
||||
#if defined(BOOST_NO_STD_USE_FACET)
|
||||
# ifdef BOOST_HAS_TWO_ARG_USE_FACET
|
||||
@@ -424,12 +466,18 @@ 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
|
||||
// (with -pedantic -ansi) unless it's use is prefixed by __extension__
|
||||
//
|
||||
#if defined(BOOST_HAS_LONG_LONG)
|
||||
#if defined(BOOST_HAS_LONG_LONG) && defined(__cplusplus)
|
||||
namespace boost{
|
||||
# ifdef __GNUC__
|
||||
__extension__ typedef long long long_long_type;
|
||||
@@ -443,12 +491,11 @@ 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:
|
||||
//
|
||||
@@ -484,23 +531,23 @@ namespace boost{
|
||||
//
|
||||
|
||||
|
||||
#if defined BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
|
||||
#if defined(BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS) && defined(__cplusplus)
|
||||
|
||||
# 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
|
||||
@@ -520,6 +567,12 @@ 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:
|
||||
#if defined(BOOST_NO_STD_TYPEINFO) && defined(__cplusplus)
|
||||
#include <typeinfo>
|
||||
namespace std{ using ::type_info; }
|
||||
#endif
|
||||
|
||||
// ---------------------------------------------------------------------------//
|
||||
|
||||
@@ -562,8 +615,293 @@ namespace boost{
|
||||
# endif
|
||||
# endif
|
||||
|
||||
//
|
||||
// Set some default values GPU support
|
||||
//
|
||||
# ifndef BOOST_GPU_ENABLED
|
||||
# define BOOST_GPU_ENABLED
|
||||
# endif
|
||||
|
||||
// BOOST_FORCEINLINE ---------------------------------------------//
|
||||
// Macro to use in place of 'inline' to force a function to be inline
|
||||
#if !defined(BOOST_FORCEINLINE)
|
||||
# if defined(_MSC_VER)
|
||||
# define BOOST_FORCEINLINE __forceinline
|
||||
# elif defined(__GNUC__) && __GNUC__ > 3
|
||||
# define BOOST_FORCEINLINE inline __attribute__ ((always_inline))
|
||||
# else
|
||||
# define BOOST_FORCEINLINE inline
|
||||
# endif
|
||||
#endif
|
||||
|
||||
//
|
||||
// Set BOOST_NO_DECLTYPE_N3276 when BOOST_NO_DECLTYPE is defined
|
||||
//
|
||||
#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_CXX11_DECLTYPE_N3276)
|
||||
#define BOOST_NO_CXX11_DECLTYPE_N3276 BOOST_NO_CXX11_DECLTYPE
|
||||
#endif
|
||||
|
||||
// -------------------- Deprecated macros for 1.50 ---------------------------
|
||||
// These will go away in a future release
|
||||
|
||||
// Use BOOST_NO_CXX11_HDR_UNORDERED_SET or BOOST_NO_CXX11_HDR_UNORDERED_MAP
|
||||
// instead of BOOST_NO_STD_UNORDERED
|
||||
#if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) || defined (BOOST_NO_CXX11_HDR_UNORDERED_SET)
|
||||
# ifndef BOOST_NO_STD_UNORDERED
|
||||
# define BOOST_NO_STD_UNORDERED
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST instead of BOOST_NO_INITIALIZER_LISTS
|
||||
#if defined(BOOST_NO_CXX11_HDR_INITIALIZER_LIST) && !defined(BOOST_NO_INITIALIZER_LISTS)
|
||||
# define BOOST_NO_INITIALIZER_LISTS
|
||||
#endif
|
||||
|
||||
// Use BOOST_NO_CXX11_HDR_ARRAY instead of BOOST_NO_0X_HDR_ARRAY
|
||||
#if defined(BOOST_NO_CXX11_HDR_ARRAY) && !defined(BOOST_NO_BOOST_NO_0X_HDR_ARRAY)
|
||||
# define BOOST_NO_0X_HDR_ARRAY
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_HDR_CHRONO instead of BOOST_NO_0X_HDR_CHRONO
|
||||
#if defined(BOOST_NO_CXX11_HDR_CHRONO) && !defined(BOOST_NO_0X_HDR_CHRONO)
|
||||
# define BOOST_NO_0X_HDR_CHRONO
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_HDR_CODECVT instead of BOOST_NO_0X_HDR_CODECVT
|
||||
#if defined(BOOST_NO_CXX11_HDR_CODECVT) && !defined(BOOST_NO_0X_HDR_CODECVT)
|
||||
# define BOOST_NO_0X_HDR_CODECVT
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_HDR_CONDITION_VARIABLE instead of BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||
#if defined(BOOST_NO_CXX11_HDR_CONDITION_VARIABLE) && !defined(BOOST_NO_0X_HDR_CONDITION_VARIABLE)
|
||||
# define BOOST_NO_0X_HDR_CONDITION_VARIABLE
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_HDR_FORWARD_LIST instead of BOOST_NO_0X_HDR_FORWARD_LIST
|
||||
#if defined(BOOST_NO_CXX11_HDR_FORWARD_LIST) && !defined(BOOST_NO_0X_HDR_FORWARD_LIST)
|
||||
# define BOOST_NO_0X_HDR_FORWARD_LIST
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_HDR_FUTURE instead of BOOST_NO_0X_HDR_FUTURE
|
||||
#if defined(BOOST_NO_CXX11_HDR_FUTURE) && !defined(BOOST_NO_0X_HDR_FUTURE)
|
||||
# define BOOST_NO_0X_HDR_FUTURE
|
||||
#endif
|
||||
|
||||
// Use BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
// instead of BOOST_NO_0X_HDR_INITIALIZER_LIST or BOOST_NO_INITIALIZER_LISTS
|
||||
#ifdef BOOST_NO_CXX11_HDR_INITIALIZER_LIST
|
||||
# ifndef BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||
# define BOOST_NO_0X_HDR_INITIALIZER_LIST
|
||||
# endif
|
||||
# ifndef BOOST_NO_INITIALIZER_LISTS
|
||||
# define BOOST_NO_INITIALIZER_LISTS
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// Use BOOST_NO_CXX11_HDR_MUTEX instead of BOOST_NO_0X_HDR_MUTEX
|
||||
#if defined(BOOST_NO_CXX11_HDR_MUTEX) && !defined(BOOST_NO_0X_HDR_MUTEX)
|
||||
# define BOOST_NO_0X_HDR_MUTEX
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_HDR_RANDOM instead of BOOST_NO_0X_HDR_RANDOM
|
||||
#if defined(BOOST_NO_CXX11_HDR_RANDOM) && !defined(BOOST_NO_0X_HDR_RANDOM)
|
||||
# define BOOST_NO_0X_HDR_RANDOM
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_HDR_RATIO instead of BOOST_NO_0X_HDR_RATIO
|
||||
#if defined(BOOST_NO_CXX11_HDR_RATIO) && !defined(BOOST_NO_0X_HDR_RATIO)
|
||||
# define BOOST_NO_0X_HDR_RATIO
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_HDR_REGEX instead of BOOST_NO_0X_HDR_REGEX
|
||||
#if defined(BOOST_NO_CXX11_HDR_REGEX) && !defined(BOOST_NO_0X_HDR_REGEX)
|
||||
# define BOOST_NO_0X_HDR_REGEX
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_HDR_SYSTEM_ERROR instead of BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||
#if defined(BOOST_NO_CXX11_HDR_SYSTEM_ERROR) && !defined(BOOST_NO_0X_HDR_SYSTEM_ERROR)
|
||||
# define BOOST_NO_0X_HDR_SYSTEM_ERROR
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_HDR_THREAD instead of BOOST_NO_0X_HDR_THREAD
|
||||
#if defined(BOOST_NO_CXX11_HDR_THREAD) && !defined(BOOST_NO_0X_HDR_THREAD)
|
||||
# define BOOST_NO_0X_HDR_THREAD
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_HDR_TUPLE instead of BOOST_NO_0X_HDR_TUPLE
|
||||
#if defined(BOOST_NO_CXX11_HDR_TUPLE) && !defined(BOOST_NO_0X_HDR_TUPLE)
|
||||
# define BOOST_NO_0X_HDR_TUPLE
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_HDR_TYPE_TRAITS instead of BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||
#if defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS) && !defined(BOOST_NO_0X_HDR_TYPE_TRAITS)
|
||||
# define BOOST_NO_0X_HDR_TYPE_TRAITS
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_HDR_TYPEINDEX instead of BOOST_NO_0X_HDR_TYPEINDEX
|
||||
#if defined(BOOST_NO_CXX11_HDR_TYPEINDEX) && !defined(BOOST_NO_0X_HDR_TYPEINDEX)
|
||||
# define BOOST_NO_0X_HDR_TYPEINDEX
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_HDR_UNORDERED_MAP instead of BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||
#if defined(BOOST_NO_CXX11_HDR_UNORDERED_MAP) && !defined(BOOST_NO_0X_HDR_UNORDERED_MAP)
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_MAP
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_HDR_UNORDERED_SET instead of BOOST_NO_0X_HDR_UNORDERED_SET
|
||||
#if defined(BOOST_NO_CXX11_HDR_UNORDERED_SET) && !defined(BOOST_NO_0X_HDR_UNORDERED_SET)
|
||||
# define BOOST_NO_0X_HDR_UNORDERED_SET
|
||||
#endif
|
||||
|
||||
// ------------------ End of deprecated macros for 1.50 ---------------------------
|
||||
|
||||
// -------------------- Deprecated macros for 1.51 ---------------------------
|
||||
// These will go away in a future release
|
||||
|
||||
// Use BOOST_NO_CXX11_AUTO_DECLARATIONS instead of BOOST_NO_AUTO_DECLARATIONS
|
||||
#if defined(BOOST_NO_CXX11_AUTO_DECLARATIONS) && !defined(BOOST_NO_AUTO_DECLARATIONS)
|
||||
# define BOOST_NO_AUTO_DECLARATIONS
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS instead of BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#if defined(BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS) && !defined(BOOST_NO_AUTO_MULTIDECLARATIONS)
|
||||
# define BOOST_NO_AUTO_MULTIDECLARATIONS
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_CHAR16_T instead of BOOST_NO_CHAR16_T
|
||||
#if defined(BOOST_NO_CXX11_CHAR16_T) && !defined(BOOST_NO_CHAR16_T)
|
||||
# define BOOST_NO_CHAR16_T
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_CHAR32_T instead of BOOST_NO_CHAR32_T
|
||||
#if defined(BOOST_NO_CXX11_CHAR32_T) && !defined(BOOST_NO_CHAR32_T)
|
||||
# define BOOST_NO_CHAR32_T
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_TEMPLATE_ALIASES instead of BOOST_NO_TEMPLATE_ALIASES
|
||||
#if defined(BOOST_NO_CXX11_TEMPLATE_ALIASES) && !defined(BOOST_NO_TEMPLATE_ALIASES)
|
||||
# define BOOST_NO_TEMPLATE_ALIASES
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_CONSTEXPR instead of BOOST_NO_CONSTEXPR
|
||||
#if defined(BOOST_NO_CXX11_CONSTEXPR) && !defined(BOOST_NO_CONSTEXPR)
|
||||
# define BOOST_NO_CONSTEXPR
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_DECLTYPE_N3276 instead of BOOST_NO_DECLTYPE_N3276
|
||||
#if defined(BOOST_NO_CXX11_DECLTYPE_N3276) && !defined(BOOST_NO_DECLTYPE_N3276)
|
||||
# define BOOST_NO_DECLTYPE_N3276
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_DECLTYPE instead of BOOST_NO_DECLTYPE
|
||||
#if defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_DECLTYPE)
|
||||
# define BOOST_NO_DECLTYPE
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_DEFAULTED_FUNCTIONS instead of BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#if defined(BOOST_NO_CXX11_DEFAULTED_FUNCTIONS) && !defined(BOOST_NO_DEFAULTED_FUNCTIONS)
|
||||
# define BOOST_NO_DEFAULTED_FUNCTIONS
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_DELETED_FUNCTIONS instead of BOOST_NO_DELETED_FUNCTIONS
|
||||
#if defined(BOOST_NO_CXX11_DELETED_FUNCTIONS) && !defined(BOOST_NO_DELETED_FUNCTIONS)
|
||||
# define BOOST_NO_DELETED_FUNCTIONS
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS instead of BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
#if defined(BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS) && !defined(BOOST_NO_EXPLICIT_CONVERSION_OPERATORS)
|
||||
# define BOOST_NO_EXPLICIT_CONVERSION_OPERATORS
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_EXTERN_TEMPLATE instead of BOOST_NO_EXTERN_TEMPLATE
|
||||
#if defined(BOOST_NO_CXX11_EXTERN_TEMPLATE) && !defined(BOOST_NO_EXTERN_TEMPLATE)
|
||||
# define BOOST_NO_EXTERN_TEMPLATE
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS instead of BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#if defined(BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS) && !defined(BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS)
|
||||
# define BOOST_NO_FUNCTION_TEMPLATE_DEFAULT_ARGS
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_LAMBDAS instead of BOOST_NO_LAMBDAS
|
||||
#if defined(BOOST_NO_CXX11_LAMBDAS) && !defined(BOOST_NO_LAMBDAS)
|
||||
# define BOOST_NO_LAMBDAS
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS instead of BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#if defined(BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS) && !defined(BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS)
|
||||
# define BOOST_NO_LOCAL_CLASS_TEMPLATE_PARAMETERS
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_NOEXCEPT instead of BOOST_NO_NOEXCEPT
|
||||
#if defined(BOOST_NO_CXX11_NOEXCEPT) && !defined(BOOST_NO_NOEXCEPT)
|
||||
# define BOOST_NO_NOEXCEPT
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_NULLPTR instead of BOOST_NO_NULLPTR
|
||||
#if defined(BOOST_NO_CXX11_NULLPTR) && !defined(BOOST_NO_NULLPTR)
|
||||
# define BOOST_NO_NULLPTR
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_RAW_LITERALS instead of BOOST_NO_RAW_LITERALS
|
||||
#if defined(BOOST_NO_CXX11_RAW_LITERALS) && !defined(BOOST_NO_RAW_LITERALS)
|
||||
# define BOOST_NO_RAW_LITERALS
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_RVALUE_REFERENCES instead of BOOST_NO_RVALUE_REFERENCES
|
||||
#if defined(BOOST_NO_CXX11_RVALUE_REFERENCES) && !defined(BOOST_NO_RVALUE_REFERENCES)
|
||||
# define BOOST_NO_RVALUE_REFERENCES
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_SCOPED_ENUMS instead of BOOST_NO_SCOPED_ENUMS
|
||||
#if defined(BOOST_NO_CXX11_SCOPED_ENUMS) && !defined(BOOST_NO_SCOPED_ENUMS)
|
||||
# define BOOST_NO_SCOPED_ENUMS
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_STATIC_ASSERT instead of BOOST_NO_STATIC_ASSERT
|
||||
#if defined(BOOST_NO_CXX11_STATIC_ASSERT) && !defined(BOOST_NO_STATIC_ASSERT)
|
||||
# define BOOST_NO_STATIC_ASSERT
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_STD_UNORDERD instead of BOOST_NO_STD_UNORDERD
|
||||
#if defined(BOOST_NO_CXX11_STD_UNORDERD) && !defined(BOOST_NO_STD_UNORDERD)
|
||||
# define BOOST_NO_STD_UNORDERD
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_UNICODE_LITERALS instead of BOOST_NO_UNICODE_LITERALS
|
||||
#if defined(BOOST_NO_CXX11_UNICODE_LITERALS) && !defined(BOOST_NO_UNICODE_LITERALS)
|
||||
# define BOOST_NO_UNICODE_LITERALS
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX instead of BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#if defined(BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX) && !defined(BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX)
|
||||
# define BOOST_NO_UNIFIED_INITIALIZATION_SYNTAX
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_VARIADIC_TEMPLATES instead of BOOST_NO_VARIADIC_TEMPLATES
|
||||
#if defined(BOOST_NO_CXX11_VARIADIC_TEMPLATES) && !defined(BOOST_NO_VARIADIC_TEMPLATES)
|
||||
# define BOOST_NO_VARIADIC_TEMPLATES
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_VARIADIC_MACROS instead of BOOST_NO_VARIADIC_MACROS
|
||||
#if defined(BOOST_NO_CXX11_VARIADIC_MACROS) && !defined(BOOST_NO_VARIADIC_MACROS)
|
||||
# define BOOST_NO_VARIADIC_MACROS
|
||||
#endif
|
||||
// Use BOOST_NO_CXX11_NUMERIC_LIMITS instead of BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||
#if defined(BOOST_NO_CXX11_NUMERIC_LIMITS) && !defined(BOOST_NO_NUMERIC_LIMITS_LOWEST)
|
||||
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
|
||||
#endif
|
||||
// ------------------ End of deprecated macros for 1.51 ---------------------------
|
||||
|
||||
|
||||
|
||||
//
|
||||
// Helper macros BOOST_NOEXCEPT, BOOST_NOEXCEPT_IF, BOOST_NOEXCEPT_EXPR
|
||||
// These aid the transition to C++11 while still supporting C++03 compilers
|
||||
//
|
||||
#ifdef BOOST_NO_NOEXCEPT
|
||||
# define BOOST_NOEXCEPT
|
||||
# define BOOST_NOEXCEPT_IF(Predicate)
|
||||
# define BOOST_NOEXCEPT_EXPR(Expression) false
|
||||
#else
|
||||
# define BOOST_NOEXCEPT noexcept
|
||||
# define BOOST_NOEXCEPT_IF(Predicate) noexcept((Predicate))
|
||||
# define BOOST_NOEXCEPT_EXPR(Expression) noexcept((Expression))
|
||||
#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
|
||||
|
||||
//
|
||||
// constexpr workarounds
|
||||
//
|
||||
#if defined(BOOST_NO_CONSTEXPR)
|
||||
#define BOOST_CONSTEXPR
|
||||
#define BOOST_CONSTEXPR_OR_CONST const
|
||||
#else
|
||||
#define BOOST_CONSTEXPR constexpr
|
||||
#define BOOST_CONSTEXPR_OR_CONST constexpr
|
||||
#endif
|
||||
|
||||
#define BOOST_STATIC_CONSTEXPR static BOOST_CONSTEXPR_OR_CONST
|
||||
|
||||
//
|
||||
// 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
|
||||
|
||||
//
|
||||
// Set BOOST_HAS_VARIADIC_TMPL when BOOST_NO_VARIADIC_TEMPLATES is not defined
|
||||
//
|
||||
#if !defined(BOOST_NO_VARIADIC_TEMPLATES) && !defined(BOOST_HAS_VARIADIC_TMPL)
|
||||
#define BOOST_HAS_VARIADIC_TMPL
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
47
include/boost/config/warning_disable.hpp
Normal file
47
include/boost/config/warning_disable.hpp
Normal file
@@ -0,0 +1,47 @@
|
||||
// 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 emitted 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
|
||||
@@ -38,8 +38,201 @@
|
||||
|
||||
# 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 != 0) && (1 % (( (symbol test) ) + 1)))
|
||||
((symbol ## _WORKAROUND_GUARD + 0 == 0) && \
|
||||
(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
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
//
|
||||
// use this header as a workaround for missing <limits>
|
||||
|
||||
// See http://www.boost.org/libs/utility/limits.html for documentation.
|
||||
// See http://www.boost.org/libs/compatibility/index.html for documentation.
|
||||
|
||||
#ifndef BOOST_LIMITS
|
||||
#define BOOST_LIMITS
|
||||
@@ -30,6 +30,8 @@
|
||||
# define BOOST_ULLT ::boost::ulong_long_type
|
||||
#endif
|
||||
|
||||
#include <climits> // for CHAR_BIT
|
||||
|
||||
namespace std
|
||||
{
|
||||
template<>
|
||||
@@ -76,8 +78,8 @@ namespace std
|
||||
static BOOST_LLT denorm_min() throw() { return 0; };
|
||||
|
||||
BOOST_STATIC_CONSTANT(bool, is_iec559 = false);
|
||||
BOOST_STATIC_CONSTANT(bool, is_bounded = false);
|
||||
BOOST_STATIC_CONSTANT(bool, is_modulo = false);
|
||||
BOOST_STATIC_CONSTANT(bool, is_bounded = true);
|
||||
BOOST_STATIC_CONSTANT(bool, is_modulo = true);
|
||||
|
||||
BOOST_STATIC_CONSTANT(bool, traps = false);
|
||||
BOOST_STATIC_CONSTANT(bool, tinyness_before = false);
|
||||
@@ -129,8 +131,8 @@ namespace std
|
||||
static BOOST_ULLT denorm_min() throw() { return 0; };
|
||||
|
||||
BOOST_STATIC_CONSTANT(bool, is_iec559 = false);
|
||||
BOOST_STATIC_CONSTANT(bool, is_bounded = false);
|
||||
BOOST_STATIC_CONSTANT(bool, is_modulo = false);
|
||||
BOOST_STATIC_CONSTANT(bool, is_bounded = true);
|
||||
BOOST_STATIC_CONSTANT(bool, is_modulo = true);
|
||||
|
||||
BOOST_STATIC_CONSTANT(bool, traps = false);
|
||||
BOOST_STATIC_CONSTANT(bool, tinyness_before = false);
|
||||
@@ -141,3 +143,4 @@ namespace std
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -15,21 +15,18 @@
|
||||
// will cause a recompile every time a new boost version is
|
||||
// released.
|
||||
//
|
||||
// BOOST_VERSION % 100 is the sub-minor version
|
||||
// BOOST_VERSION % 100 is the patch level
|
||||
// BOOST_VERSION / 100 % 1000 is the minor version
|
||||
// BOOST_VERSION / 100000 is the major version
|
||||
|
||||
#define BOOST_VERSION 103400
|
||||
#define BOOST_VERSION 105100
|
||||
|
||||
//
|
||||
// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
|
||||
// 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.
|
||||
// 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.
|
||||
|
||||
#define BOOST_LIB_VERSION "1_34"
|
||||
#define BOOST_LIB_VERSION "1_51"
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="refresh" content="0; URL=config.htm">
|
||||
<meta http-equiv="refresh" content="0; URL=doc/html/index.html">
|
||||
</head>
|
||||
<body>
|
||||
<P>
|
||||
Automatic redirection failed, please go to <a href="config.htm">config.htm</a>.
|
||||
Automatic redirection failed, please go to <a href="doc/html/index.html">doc/html/index.html</a>.
|
||||
</P>
|
||||
<P>Copyright John Maddock 2001</P>
|
||||
<P>Distributed under the Boost Software License, Version 1.0. (See accompanying file <A href="../../LICENSE_1_0.txt">
|
||||
@@ -12,3 +12,4 @@
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
368
test/Jamfile.v2
368
test/Jamfile.v2
@@ -1,9 +1,5 @@
|
||||
#
|
||||
# Regression test Jamfile for boost configuration setup.
|
||||
# *** DO NOT EDIT THIS FILE BY HAND ***
|
||||
# This file was automatically generated on Wed Feb 15 14:14:07 2006
|
||||
# by libs/config/tools/generate.cpp
|
||||
# Copyright John Maddock.
|
||||
# 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)
|
||||
@@ -11,320 +7,56 @@
|
||||
# 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 ;
|
||||
run math_info.cpp : : : <toolset>borland:<runtime-link>static ;
|
||||
run config_test.cpp ;
|
||||
run limits_test.cpp ;
|
||||
run abi/abi_test.cpp abi/main.cpp ;
|
||||
import modules ;
|
||||
|
||||
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_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_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_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_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_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_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_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_DEDUCED_TYPENAME" :
|
||||
[ run no_ded_typename_pass.cpp ]
|
||||
[ compile-fail no_ded_typename_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_FUNCTION_TEMPLATE_ARGUMENTS" :
|
||||
[ run no_exp_func_tem_arg_pass.cpp ]
|
||||
[ compile-fail no_exp_func_tem_arg_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_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_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_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_LONG_LONG_NUMERIC_LIMITS" :
|
||||
[ run no_ll_limits_pass.cpp ]
|
||||
[ compile-fail no_ll_limits_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_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_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_UNREACHABLE_RETURN_DETECTION" :
|
||||
[ run no_ret_det_pass.cpp ]
|
||||
[ compile-fail no_ret_det_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_SFINAE" :
|
||||
[ run no_sfinae_pass.cpp ]
|
||||
[ compile-fail no_sfinae_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_STRINGSTREAM" :
|
||||
[ run no_sstream_pass.cpp ]
|
||||
[ compile-fail no_sstream_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_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_TEMPLATES" :
|
||||
[ run no_template_template_pass.cpp ]
|
||||
[ compile-fail no_template_template_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_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 ] ;
|
||||
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
|
||||
:
|
||||
[ compile config_test_c.c ]
|
||||
[ 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 ]
|
||||
;
|
||||
|
||||
541
test/all/Jamfile.v2
Normal file
541
test/all/Jamfile.v2
Normal file
@@ -0,0 +1,541 @@
|
||||
#
|
||||
# Regression test Jamfile for boost configuration setup.
|
||||
# *** DO NOT EDIT THIS FILE BY HAND ***
|
||||
# This file was automatically generated on Tue Jul 10 14:57:46 2012
|
||||
# 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_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_GETSYSTEMTIMEASFILETIME" :
|
||||
[ run ../has_getsystemtimeasfiletime_pass.cpp ]
|
||||
[ compile-fail ../has_getsystemtimeasfiletime_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_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_CXX11_AUTO_DECLARATIONS" :
|
||||
[ run ../no_auto_declarations_pass.cpp ]
|
||||
[ compile-fail ../no_auto_declarations_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_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_CXX11_CHAR16_T" :
|
||||
[ run ../no_char16_t_pass.cpp ]
|
||||
[ compile-fail ../no_char16_t_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_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_CXX11_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_CXX11_ALLOCATOR" :
|
||||
[ run ../no_cxx11_allocator_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_allocator_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_ATOMIC_SMART_PTR" :
|
||||
[ run ../no_cxx11_atomic_sp_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_atomic_sp_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_HDR_ARRAY" :
|
||||
[ run ../no_cxx11_hdr_array_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_hdr_array_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_HDR_CHRONO" :
|
||||
[ run ../no_cxx11_hdr_chrono_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_hdr_chrono_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_HDR_CODECVT" :
|
||||
[ run ../no_cxx11_hdr_codecvt_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_hdr_codecvt_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_HDR_CONDITION_VARIABLE" :
|
||||
[ run ../no_cxx11_hdr_condition_variable_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_hdr_condition_variable_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_HDR_FORWARD_LIST" :
|
||||
[ run ../no_cxx11_hdr_forward_list_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_hdr_forward_list_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_HDR_FUTURE" :
|
||||
[ run ../no_cxx11_hdr_future_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_hdr_future_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_HDR_INITIALIZER_LIST" :
|
||||
[ run ../no_cxx11_hdr_initializer_list_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_hdr_initializer_list_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_HDR_MUTEX" :
|
||||
[ run ../no_cxx11_hdr_mutex_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_hdr_mutex_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_HDR_RANDOM" :
|
||||
[ run ../no_cxx11_hdr_random_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_hdr_random_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_HDR_RATIO" :
|
||||
[ run ../no_cxx11_hdr_ratio_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_hdr_ratio_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_HDR_REGEX" :
|
||||
[ run ../no_cxx11_hdr_regex_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_hdr_regex_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_HDR_SYSTEM_ERROR" :
|
||||
[ run ../no_cxx11_hdr_system_error_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_hdr_system_error_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_HDR_THREAD" :
|
||||
[ run ../no_cxx11_hdr_thread_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_hdr_thread_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_HDR_TUPLE" :
|
||||
[ run ../no_cxx11_hdr_tuple_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_hdr_tuple_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_HDR_TYPEINDEX" :
|
||||
[ run ../no_cxx11_hdr_typeindex_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_hdr_typeindex_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_HDR_TYPE_TRAITS" :
|
||||
[ run ../no_cxx11_hdr_type_traits_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_hdr_type_traits_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_HDR_UNORDERED_MAP" :
|
||||
[ run ../no_cxx11_hdr_unordered_map_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_hdr_unordered_map_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_HDR_UNORDERED_SET" :
|
||||
[ run ../no_cxx11_hdr_unordered_set_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_hdr_unordered_set_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_SMART_PTR" :
|
||||
[ run ../no_cxx11_smart_ptr_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_smart_ptr_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_HDR_FUNCTIONAL" :
|
||||
[ run ../no_cxx_hdr_functional_pass.cpp ]
|
||||
[ compile-fail ../no_cxx_hdr_functional_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_DECLTYPE" :
|
||||
[ run ../no_decltype_pass.cpp ]
|
||||
[ compile-fail ../no_decltype_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_DECLTYPE_N3276" :
|
||||
[ run ../no_decltype_n3276_pass.cpp ]
|
||||
[ compile-fail ../no_decltype_n3276_fail.cpp ] ;
|
||||
test-suite "BOOST_DEDUCED_TYPENAME" :
|
||||
[ run ../no_ded_typename_pass.cpp ]
|
||||
[ compile-fail ../no_ded_typename_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_DEFAULTED_FUNCTIONS" :
|
||||
[ run ../no_defaulted_functions_pass.cpp ]
|
||||
[ compile-fail ../no_defaulted_functions_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_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_CXX11_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_CXX11_EXTERN_TEMPLATE" :
|
||||
[ run ../no_extern_template_pass.cpp ]
|
||||
[ compile-fail ../no_extern_template_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_FENV_H" :
|
||||
[ run ../no_fenv_h_pass.cpp ]
|
||||
[ compile-fail ../no_fenv_h_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_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_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_CXX11_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_CXX11_NUMERIC_LIMITS" :
|
||||
[ run ../no_cxx11_numeric_limits_pass.cpp ]
|
||||
[ compile-fail ../no_cxx11_numeric_limits_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_CXX11_NOEXCEPT" :
|
||||
[ run ../no_noexcept_pass.cpp ]
|
||||
[ compile-fail ../no_noexcept_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_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_CXX11_RANGE_BASED_FOR" :
|
||||
[ run ../no_range_based_for_pass.cpp ]
|
||||
[ compile-fail ../no_range_based_for_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_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_CXX11_RVALUE_REFERENCES" :
|
||||
[ run ../no_rvalue_references_pass.cpp ]
|
||||
[ compile-fail ../no_rvalue_references_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_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_CXX11_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_CXX11_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_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS" :
|
||||
[ run ../no_tem_local_classes_pass.cpp ]
|
||||
[ compile-fail ../no_tem_local_classes_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_CXX11_UNICODE_LITERALS" :
|
||||
[ run ../no_unicode_literals_pass.cpp ]
|
||||
[ compile-fail ../no_unicode_literals_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX" :
|
||||
[ run ../no_unified_init_pass.cpp ]
|
||||
[ compile-fail ../no_unified_init_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_CXX11_VARIADIC_MACROS" :
|
||||
[ run ../no_variadic_macros_pass.cpp ]
|
||||
[ compile-fail ../no_variadic_macros_fail.cpp ] ;
|
||||
test-suite "BOOST_NO_CXX11_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 ] ;
|
||||
|
||||
@@ -6,19 +6,17 @@
|
||||
// See http://www.boost.org/libs/config for most recent version.
|
||||
|
||||
// MACRO: BOOST_HAS_FTIME
|
||||
// TITLE: GetSystemTimeAsFileTime
|
||||
// DESCRIPTION: The platform supports Win32 API GetSystemTimeAsFileTime.
|
||||
// TITLE: The platform has FTIME.
|
||||
// DESCRIPTION: The platform supports the Win32 API type FTIME.
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
|
||||
namespace boost_has_ftime{
|
||||
|
||||
void f()
|
||||
void f(FILETIME)
|
||||
{
|
||||
// this is never called, it just has to compile:
|
||||
FILETIME ft;
|
||||
GetSystemTimeAsFileTime(&ft);
|
||||
}
|
||||
|
||||
int test()
|
||||
|
||||
30
test/boost_has_getsystemtimeasfiletime.ipp
Normal file
30
test/boost_has_getsystemtimeasfiletime.ipp
Normal file
@@ -0,0 +1,30 @@
|
||||
// (C) Copyright John Maddock 2011.
|
||||
// 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_GETSYSTEMTIMEASFILETIME
|
||||
// TITLE: GetSystemTimeAsFileTime
|
||||
// DESCRIPTION: The platform supports Win32 API GetSystemTimeAsFileTime.
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
|
||||
namespace boost_has_getsystemtimeasfiletime{
|
||||
|
||||
void f()
|
||||
{
|
||||
// this is never called, it just has to compile:
|
||||
FILETIME ft;
|
||||
GetSystemTimeAsFileTime(&ft);
|
||||
}
|
||||
|
||||
int test()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -11,9 +11,17 @@
|
||||
// or hash_map classes.
|
||||
|
||||
#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
|
||||
# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
|
||||
#include <ext/hash_set>
|
||||
#include <ext/hash_map>
|
||||
# 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>
|
||||
@@ -25,6 +33,8 @@
|
||||
|
||||
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>& )
|
||||
{
|
||||
@@ -35,12 +45,16 @@ 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;
|
||||
}
|
||||
|
||||
|
||||
@@ -14,17 +14,46 @@
|
||||
|
||||
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)
|
||||
{
|
||||
pthread_mutex_lock(&mut);
|
||||
pthread_mutex_unlock(&mut);
|
||||
pthread_mutex_destroy(&mut);
|
||||
//
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
26
test/boost_has_rvalue_refs.ipp
Normal file
26
test/boost_has_rvalue_refs.ipp
Normal file
@@ -0,0 +1,26 @@
|
||||
// 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;
|
||||
}
|
||||
|
||||
}
|
||||
20
test/boost_has_static_assert.ipp
Normal file
20
test/boost_has_static_assert.ipp
Normal file
@@ -0,0 +1,20 @@
|
||||
// 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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
#include <functional>
|
||||
|
||||
namespace boost_has_tr1_bind{
|
||||
namespace boost_has_tr1_function{
|
||||
|
||||
using std::tr1::function;
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
namespace boost_has_tr1_result_of{
|
||||
|
||||
typedef std::tr1::result_of<int*(int)> r;
|
||||
typedef typename r::type rr;
|
||||
typedef r::type rr;
|
||||
|
||||
int test()
|
||||
{
|
||||
|
||||
21
test/boost_has_variadic_tmpl.ipp
Normal file
21
test/boost_has_variadic_tmpl.ipp
Normal file
@@ -0,0 +1,21 @@
|
||||
// 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_VARIADIC_TMPL
|
||||
// TITLE: variadic templates
|
||||
// DESCRIPTION: The compiler supports C++0x variadic templates
|
||||
|
||||
namespace boost_has_variadic_tmpl {
|
||||
|
||||
template<typename... Elements> struct tuple {};
|
||||
|
||||
int test()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
38
test/boost_no_adl_barrier.ipp
Normal file
38
test/boost_no_adl_barrier.ipp
Normal file
@@ -0,0 +1,38 @@
|
||||
// (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)
|
||||
|
||||
// See http://www.boost.org/libs/config for most recent version.
|
||||
|
||||
// MACRO: BOOST_NO_ADL_BARRIER
|
||||
// TITLE: Working ADL barriers.
|
||||
// DESCRIPTION: If the compiler correctly handles ADL.
|
||||
|
||||
namespace boost_no_adl_barrier{
|
||||
|
||||
namespace xxx {
|
||||
namespace nested {
|
||||
struct aaa {};
|
||||
}
|
||||
void begin(nested::aaa) {}
|
||||
}
|
||||
|
||||
namespace nnn {
|
||||
void begin(xxx::nested::aaa) {}
|
||||
}
|
||||
|
||||
int test()
|
||||
{
|
||||
using namespace nnn;
|
||||
xxx::nested::aaa a;
|
||||
begin(a); // ambiguous error in msvc-9.0
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
25
test/boost_no_auto_declarations.ipp
Normal file
25
test/boost_no_auto_declarations.ipp
Normal file
@@ -0,0 +1,25 @@
|
||||
// Copyright (C) 2009 Andrey Semashev
|
||||
// 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_NO_CXX11_AUTO_DECLARATIONS
|
||||
// TITLE: C++0x auto declarators unavailable
|
||||
// DESCRIPTION: The compiler does not support C++0x declarations of variables with automatically deduced type
|
||||
|
||||
namespace boost_no_cxx11_auto_declarations {
|
||||
|
||||
void check_f(int& x)
|
||||
{
|
||||
}
|
||||
|
||||
int test()
|
||||
{
|
||||
auto x = 10;
|
||||
check_f(x);
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
25
test/boost_no_auto_multidecl.ipp
Normal file
25
test/boost_no_auto_multidecl.ipp
Normal file
@@ -0,0 +1,25 @@
|
||||
// Copyright (C) 2009 Andrey Semashev
|
||||
// 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_NO_CXX11_AUTO_MULTIDECLARATIONS
|
||||
// TITLE: C++0x auto multideclarators unavailable
|
||||
// DESCRIPTION: The compiler does not support C++0x declarations of series of variables with automatically deduced type
|
||||
|
||||
namespace boost_no_cxx11_auto_multideclarations {
|
||||
|
||||
void check_f(int& x, int*& y)
|
||||
{
|
||||
}
|
||||
|
||||
int test()
|
||||
{
|
||||
auto x = 10, *y = &x;
|
||||
check_f(x, y);
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
// (C) Copyright Terje Slettebø 2002.
|
||||
// (C) Copyright Terje Slettebo 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)
|
||||
|
||||
32
test/boost_no_char16_t.ipp
Normal file
32
test/boost_no_char16_t.ipp
Normal file
@@ -0,0 +1,32 @@
|
||||
|
||||
// (C) Copyright Beman Dawes 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)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_CXX11_CHAR16_T
|
||||
// TITLE: C++0x char16_t unavailable
|
||||
// DESCRIPTION: The compiler does not support C++0x char16_t
|
||||
|
||||
namespace boost_no_cxx11_char16_t {
|
||||
|
||||
// Microsoft VC++ 2010, and possibly other compilers, provides
|
||||
// a typedef for char16_t rather than a new type. We want that
|
||||
// to be an error, so provide an overloaded function that will
|
||||
// be ambiguous if char16_t is just a typedef.
|
||||
void f(const char16_t*){}
|
||||
void f(const unsigned short*){}
|
||||
void f(const unsigned int*){}
|
||||
void f(const unsigned long*){}
|
||||
|
||||
int test()
|
||||
{
|
||||
const char16_t* p;
|
||||
f(p);
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
31
test/boost_no_char32_t.ipp
Normal file
31
test/boost_no_char32_t.ipp
Normal file
@@ -0,0 +1,31 @@
|
||||
// (C) Copyright Beman Dawes 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)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_CXX11_CHAR32_T
|
||||
// TITLE: C++0x char32_t unavailable
|
||||
// DESCRIPTION: The compiler does not support C++0x char32_t
|
||||
|
||||
namespace boost_no_cxx11_char32_t {
|
||||
|
||||
// Microsoft VC++ 2010, and possibly other compilers, provides
|
||||
// a typedef for char32_t rather than a new type. We want that
|
||||
// to be an error, so provide an overloaded function that will
|
||||
// be ambiguous if char16_t is just a typedef.
|
||||
void f(const char32_t*){}
|
||||
void f(const unsigned short*){}
|
||||
void f(const unsigned int*){}
|
||||
void f(const unsigned long*){}
|
||||
|
||||
int test()
|
||||
{
|
||||
const char32_t* p;
|
||||
f(p);
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
1016
test/boost_no_com_value_init.ipp
Normal file
1016
test/boost_no_com_value_init.ipp
Normal file
File diff suppressed because it is too large
Load Diff
46
test/boost_no_constexpr.ipp
Normal file
46
test/boost_no_constexpr.ipp
Normal file
@@ -0,0 +1,46 @@
|
||||
// (C) Copyright Beman Dawes 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)
|
||||
|
||||
// See http://www.boost.org/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_CXX11_CONSTEXPR
|
||||
// TITLE: C++0x constexpr unavailable
|
||||
// DESCRIPTION: The compiler does not support C++0x constexpr
|
||||
|
||||
namespace boost_no_cxx11_constexpr {
|
||||
|
||||
void quiet_warning(int){}
|
||||
|
||||
constexpr int square(int x) { return x * x; } // from N2235
|
||||
|
||||
// from 5.19:
|
||||
constexpr const int* addr(const int& ir) { return &ir; }
|
||||
static const int x = 5;
|
||||
constexpr const int* xp = addr(x);
|
||||
|
||||
struct A
|
||||
{
|
||||
constexpr A(int i) : val(i) { }
|
||||
constexpr operator int() { return val; }
|
||||
constexpr operator long() { return 43; }
|
||||
private:
|
||||
int val;
|
||||
};
|
||||
|
||||
template<int> struct X { };
|
||||
|
||||
constexpr A a = 42;
|
||||
|
||||
X<a> xx; // OK: unique conversion to int
|
||||
|
||||
int test()
|
||||
{
|
||||
int i = square(5);
|
||||
quiet_warning(i);
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
34
test/boost_no_cxx11_allocator.ipp
Normal file
34
test/boost_no_cxx11_allocator.ipp
Normal file
@@ -0,0 +1,34 @@
|
||||
// (C) Copyright John Maddock 2012
|
||||
|
||||
// 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 more information.
|
||||
|
||||
// MACRO: BOOST_NO_CXX11_ALLOCATOR
|
||||
// TITLE: C++11 <memory> doesn't have C++0x allocator support
|
||||
// DESCRIPTION: The compiler does not support the C++11 allocator features added to <memory>
|
||||
|
||||
#include <memory>
|
||||
|
||||
namespace boost_no_cxx11_allocator {
|
||||
|
||||
int test()
|
||||
{
|
||||
std::pointer_traits<char*>* p = 0;
|
||||
//std::pointer_safety s = std::relaxed;
|
||||
|
||||
//char* (*l_undeclare_reachable)(char *p) = std::undeclare_reachable;
|
||||
//void (*l_declare_no_pointers)(char *p, size_t n) = std::declare_no_pointers;
|
||||
//void (*l_undeclare_no_pointers)(char *p, size_t n) = std::undeclare_no_pointers;
|
||||
//std::pointer_safety (*l_get_pointer_safety)() = std::get_pointer_safety;
|
||||
//void* (*l_align)(std::size_t alignment, std::size_t size, void *&ptr, std::size_t& space) = std::align;
|
||||
std::allocator_arg_t aat;
|
||||
std::uses_allocator<int, std::allocator<int> > ua;
|
||||
std::allocator_traits<std::allocator<int> > at;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
37
test/boost_no_cxx11_atomic_sp.ipp
Normal file
37
test/boost_no_cxx11_atomic_sp.ipp
Normal file
@@ -0,0 +1,37 @@
|
||||
// (C) Copyright John Maddock 2012
|
||||
|
||||
// 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 more information.
|
||||
|
||||
// MACRO: BOOST_NO_CXX11_ATOMIC_SMART_PTR
|
||||
// TITLE: C++11 <memory> does not support atomic smart pointer operations
|
||||
// DESCRIPTION: The compiler does not support the C++11 atomic smart pointer features added to <memory>
|
||||
|
||||
#include <memory>
|
||||
|
||||
namespace boost_no_cxx11_atomic_smart_ptr {
|
||||
|
||||
int test()
|
||||
{
|
||||
std::shared_ptr<int> spi(new int), spi2(new int);
|
||||
spi = std::static_pointer_cast<int>(spi);
|
||||
|
||||
atomic_is_lock_free(&spi);
|
||||
atomic_load(&spi);
|
||||
atomic_load_explicit(&spi, std::memory_order_relaxed);
|
||||
atomic_store(&spi, spi2);
|
||||
atomic_store_explicit(&spi, spi2, std::memory_order_relaxed);
|
||||
atomic_exchange(&spi, spi2);
|
||||
atomic_exchange_explicit(&spi, std::memory_order_relaxed);
|
||||
atomic_compare_exchange_weak(&spi, &spi2, spi);
|
||||
atomic_compare_exchange_strong(&spi, &spi2, spi);
|
||||
atomic_compare_exchange_weak_explicit(&spi, &spi2, spi, std::memory_order_relaxed, std::memory_order_relaxed);
|
||||
atomic_compare_exchange_strong_explicit(&spi, &spi2, spi, std::memory_order_relaxed, std::memory_order_relaxed);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
23
test/boost_no_cxx11_hdr_array.ipp
Normal file
23
test/boost_no_cxx11_hdr_array.ipp
Normal file
@@ -0,0 +1,23 @@
|
||||
// (C) Copyright Beman Dawes 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/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_CXX11_HDR_ARRAY
|
||||
// TITLE: C++0x header <array> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <array>
|
||||
|
||||
#include <array>
|
||||
|
||||
namespace boost_no_cxx11_hdr_array {
|
||||
|
||||
int test()
|
||||
{
|
||||
std::array<int, 3> a = { 1, 2, 3 };
|
||||
return a.size() == 3 ? 0 : 1;
|
||||
}
|
||||
|
||||
}
|
||||
31
test/boost_no_cxx11_hdr_chrono.ipp
Normal file
31
test/boost_no_cxx11_hdr_chrono.ipp
Normal file
@@ -0,0 +1,31 @@
|
||||
// (C) Copyright Beman Dawes 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/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_CXX11_HDR_CHRONO
|
||||
// TITLE: C++0x header <chrono> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <chrono>
|
||||
|
||||
#include <chrono>
|
||||
|
||||
namespace boost_no_cxx11_hdr_chrono {
|
||||
|
||||
int test()
|
||||
{
|
||||
using std::chrono::nanoseconds;
|
||||
using std::chrono::microseconds;
|
||||
using std::chrono::milliseconds;
|
||||
using std::chrono::seconds;
|
||||
using std::chrono::minutes;
|
||||
using std::chrono::hours;
|
||||
using std::chrono::system_clock;
|
||||
using std::chrono::steady_clock;
|
||||
using std::chrono::high_resolution_clock;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
25
test/boost_no_cxx11_hdr_codecvt.ipp
Normal file
25
test/boost_no_cxx11_hdr_codecvt.ipp
Normal file
@@ -0,0 +1,25 @@
|
||||
// (C) Copyright Beman Dawes 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/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_CXX11_HDR_CODECVT
|
||||
// TITLE: C++0x header <codecvt> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <codecvt>
|
||||
|
||||
#include <codecvt>
|
||||
|
||||
namespace boost_no_cxx11_hdr_codecvt {
|
||||
|
||||
int test()
|
||||
{
|
||||
using std::codecvt_utf8;
|
||||
using std::codecvt_utf16;
|
||||
using std::codecvt_utf8_utf16;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
24
test/boost_no_cxx11_hdr_condition_variable.ipp
Normal file
24
test/boost_no_cxx11_hdr_condition_variable.ipp
Normal file
@@ -0,0 +1,24 @@
|
||||
// (C) Copyright Beman Dawes 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/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
|
||||
// TITLE: C++0x header <condition_variable> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <condition_variable>
|
||||
|
||||
#include <condition_variable>
|
||||
|
||||
namespace boost_no_cxx11_hdr_condition_variable {
|
||||
|
||||
int test()
|
||||
{
|
||||
using std::condition_variable;
|
||||
using std::condition_variable_any;
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
23
test/boost_no_cxx11_hdr_forward_list.ipp
Normal file
23
test/boost_no_cxx11_hdr_forward_list.ipp
Normal file
@@ -0,0 +1,23 @@
|
||||
// (C) Copyright Beman Dawes 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/libs/config for more information.
|
||||
|
||||
// MACRO: BOOST_NO_CXX11_HDR_FORWARD_LIST
|
||||
// TITLE: C++0x header <forward_list> unavailable
|
||||
// DESCRIPTION: The standard library does not supply C++0x header <forward_list>
|
||||
|
||||
#include <forward_list>
|
||||
|
||||
namespace boost_no_cxx11_hdr_forward_list {
|
||||
|
||||
int test()
|
||||
{
|
||||
std::forward_list<int> l(2u, 2);
|
||||
return *l.begin() == 2 ? 0 : 1;
|
||||
}
|
||||
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user