Merge Boost.Config changes from Trunk.

[SVN r67522]
This commit is contained in:
John Maddock
2010-12-31 17:08:07 +00:00
parent bb3e68b516
commit 3ce24d6389
35 changed files with 624 additions and 78 deletions

View File

@ -1695,6 +1695,26 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_HAS_FENV_H</span></code>
</p>
</td>
<td>
<p>
Platform, Standard library
</p>
</td>
<td>
<p>
The platform has a <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">fenv</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>.
<a href="../../../../../boost/detail/fenv.hpp" target="_top"><code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">fenv</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code></a>
should be included instead of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">fenv</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code>
for maximum portability.
</p>
</td>
</tr>
<tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_HAS_STDINT_H</span></code> <code class="computeroutput"><span class="identifier">BOOST_HAS_STDINT_H</span></code>
@ -3200,6 +3220,77 @@
</p> </p>
</td> </td>
</tr> </tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_CONSTEXPR</span></code>
</p>
</td>
<td>
<p>
Some compilers don't support the use of <code class="computeroutput"><span class="identifier">constexpr</span></code>.
This macro expands to nothing on those compilers, and <code class="computeroutput"><span class="identifier">constexpr</span></code> elsewhere. For example,
when defining a constexpr function or constructor replace:
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">constexpr</span> <span class="identifier">tuple</span><span class="special">();</span>
</pre>
<p>
with:
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_CONSTEXPR</span> <span class="identifier">tuple</span><span class="special">();</span>
</pre>
<p>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_CONSTEXPR_OR_CONST</span></code>
</p>
</td>
<td>
<p>
Some compilers don't support the use of <code class="computeroutput"><span class="identifier">constexpr</span></code>.
This macro expands to <code class="computeroutput"><span class="keyword">const</span></code>
on those compilers, and <code class="computeroutput"><span class="identifier">constexpr</span></code>
elsewhere. For example, when defining const expr variables replace:
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">static</span> <span class="identifier">constexpr</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
</pre>
<p>
with:
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">static</span> <span class="identifier">BOOST_CONSTEXPR_OR_CONST</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
</pre>
<p>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_STATIC_CONSTEXPR</span></code>
</p>
</td>
<td>
<p>
This is a shortcut for <code class="computeroutput"><span class="keyword">static</span>
<span class="identifier">BOOST_CONSTEXPR_OR_CONST</span></code>For
example, when defining const expr variables replace:
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">static</span> <span class="identifier">constexpr</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
</pre>
<p>
with:
</p>
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">BOOST_STATIC_CONSTEXPR</span> <span class="identifier">UIntType</span> <span class="identifier">xor_mask</span> <span class="special">=</span> <span class="identifier">a</span><span class="special">;</span>
</pre>
<p>
</p>
</td>
</tr>
</tbody> </tbody>
</table></div> </table></div>
</div> </div>
@ -3390,6 +3481,96 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_LINUX</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
Defined if the system kernel is Linux
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_NIX</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
Defined if the system is POSIX compliant
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_GENETIC_NIX</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
Defined if the system can trace its ancestry to the original AT&amp;T
codebase or designs, but is not certified by the Open Group. This
is the case for modern open-source BSD systems.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_TRADEMARK_NIX</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
Systems certified as POSIX compliant by the Open Group. These systems
can use the UNIX trademark. Most commercially developed *nix systems
fall into this category.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_FUNCTIONAL_NIX</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
Systems which behave in a manner roughly consistent with POSIX
standards. Linux and Minix fall into this category.
</p>
</td>
</tr>
<tr>
<td> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_DINKUMWARE_STDLIB</span></code> <code class="computeroutput"><span class="identifier">BOOST_DINKUMWARE_STDLIB</span></code>

View File

@ -28,7 +28,7 @@
</h3></div></div></div> </h3></div></div></div>
<div><p class="copyright">Copyright &#169; 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock</p></div> <div><p class="copyright">Copyright &#169; 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock</p></div>
<div><div class="legalnotice"> <div><div class="legalnotice">
<a name="id1010243"></a><p> <a name="id896648"></a><p>
Distributed under the Boost Software License, Version 1.0. (See accompanying 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>) 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> </p>
@ -950,7 +950,7 @@
</div> </div>
</div> </div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: September 26, 2010 at 09:24:20 GMT</small></p></td> <td align="left"><p><small>Last revised: November 25, 2010 at 10:30:55 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td> <td align="right"><div class="copyright-footer"></div></td>
</tr></table> </tr></table>
<hr> <hr>

View File

@ -71,6 +71,11 @@ The Platform does not provide `<wchar.h>` and `<cwchar>`.
[[`BOOST_NO_CWCTYPE`][Platform][ [[`BOOST_NO_CWCTYPE`][Platform][
The Platform does not provide `<wctype.h>` and `<cwctype>`. The Platform does not provide `<wctype.h>` and `<cwctype>`.
]] ]]
[[`BOOST_NO_FENV_H`][Platform, Standard library][
The C standard library doesn't provide `<fenv.h>`. [@../../../../boost/detail/fenv.hpp
`<boost/detail/fenv.hpp>`] should be included instead of `<fenv.h>` for maximum
portability on platforms which do provide `<fenv.h>`.
]]
[[`BOOST_NO_DEPENDENT_NESTED_DERIVATIONS`][Compiler][ [[`BOOST_NO_DEPENDENT_NESTED_DERIVATIONS`][Compiler][
The compiler fails to compile a nested class that has a dependent base class: The compiler fails to compile a nested class that has a dependent base class:
`` ``
@ -798,6 +803,38 @@ the arguments is itself a macro (see 16.3.1 in C++ standard). This is normally
used to create a mangled name in combination with a predefined macro such a used to create a mangled name in combination with a predefined macro such a
\_\_LINE__. \_\_LINE__.
]] ]]
[[`BOOST_CONSTEXPR`][
Some compilers don't support the use of `constexpr`. This macro expands to nothing on those compilers, and `constexpr`
elsewhere. For example, when defining a constexpr function or constructor replace:
``
constexpr tuple();
``
with:
``
BOOST_CONSTEXPR tuple();
``
]]
[[`BOOST_CONSTEXPR_OR_CONST`][
Some compilers don't support the use of `constexpr`. This macro expands to `const` on those compilers, and `constexpr`
elsewhere. For example, when defining const expr variables replace:
``
static constexpr UIntType xor_mask = a;
``
with:
``
static BOOST_CONSTEXPR_OR_CONST UIntType xor_mask = a;
``
]]
[[`BOOST_STATIC_CONSTEXPR`][
This is a shortcut for `static BOOST_CONSTEXPR_OR_CONST`For example, when defining const expr variables replace:
``
static constexpr UIntType xor_mask = a;
``
with:
``
BOOST_STATIC_CONSTEXPR UIntType xor_mask = a;
``
]]
] ]
[endsect] [endsect]
@ -845,6 +882,26 @@ Defined to 1 if the compiler is the Clang compiler.
[[`BOOST_WINDOWS`][`<boost/config.hpp>`][ [[`BOOST_WINDOWS`][`<boost/config.hpp>`][
Defined if the Windows platfrom API is available. Defined if the Windows platfrom API is available.
]] ]]
[[`BOOST_LINUX`][`<boost/config.hpp>`][
Defined if the system kernel is Linux
]]
[[`BOOST_NIX`][`<boost/config.hpp>`][
Defined if the system is POSIX compliant
]]
[[`BOOST_GENETIC_NIX`][`<boost/config.hpp>`][
Defined if the system can trace its ancestry to the original AT&T codebase or
designs, but is not certified by the Open Group. This is the case for modern
open-source BSD systems.
]]
[[`BOOST_TRADEMARK_NIX`][`<boost/config.hpp>`][
Systems certified as POSIX compliant by the Open Group. These systems can use
the UNIX trademark. Most commercially developed *nix systems fall into this
category.
]]
[[`BOOST_FUNCTIONAL_NIX`][`<boost/config.hpp>`][
Systems which behave in a manner roughly consistent with POSIX standards. Linux
and Minix fall into this category.
]]
[[`BOOST_DINKUMWARE_STDLIB`][`<boost/config.hpp>`][ [[`BOOST_DINKUMWARE_STDLIB`][`<boost/config.hpp>`][
Defined if the dinkumware standard library is in use, takes the same value Defined if the dinkumware standard library is in use, takes the same value
as the Dinkumware library version macro `_CPPLIB_VER` if defined, otherwise 1. as the Dinkumware library version macro `_CPPLIB_VER` if defined, otherwise 1.

View File

@ -414,7 +414,4 @@ BOOST_LIB_VERSION: The Boost version, in the form x_y, for Boost version x.y.
#if defined(BOOST_DYN_LINK) #if defined(BOOST_DYN_LINK)
# undef BOOST_DYN_LINK # undef BOOST_DYN_LINK
#endif #endif
#if defined(BOOST_AUTO_LINK_NOMANGLE)
# undef BOOST_AUTO_LINK_NOMANGLE
#endif

View File

@ -12,6 +12,9 @@
// //
// versions check: // versions check:
// we don't support Borland prior to version 5.4: // we don't support Borland prior to version 5.4:
#define BOOST_BORLAND __BORLANDC__
#if __BORLANDC__ < 0x540 #if __BORLANDC__ < 0x540
# error "Compiler not supported or configured - please reconfigure" # error "Compiler not supported or configured - please reconfigure"
#endif #endif

View File

@ -14,6 +14,8 @@
#include "boost/config/compiler/common_edg.hpp" #include "boost/config/compiler/common_edg.hpp"
#define BOOST_COMO __COMO_VERSION__
#if (__COMO_VERSION__ <= 4245) #if (__COMO_VERSION__ <= 4245)
# if defined(_MSC_VER) && _MSC_VER <= 1300 # if defined(_MSC_VER) && _MSC_VER <= 1300

View File

@ -62,10 +62,13 @@
#if (__EDG_VERSION__ < 310) #if (__EDG_VERSION__ < 310)
# define BOOST_NO_EXTERN_TEMPLATE # define BOOST_NO_EXTERN_TEMPLATE
#endif #endif
#if (__EDG_VERSION__ <= 310) || !defined(BOOST_STRICT_CONFIG) #if (__EDG_VERSION__ <= 310)
// No support for initializer lists // No support for initializer lists
# define BOOST_NO_INITIALIZER_LISTS # define BOOST_NO_INITIALIZER_LISTS
#endif #endif
#if (__EDG_VERSION__ < 400)
# define BOOST_NO_VARIADIC_MACROS
#endif
#define BOOST_NO_AUTO_DECLARATIONS #define BOOST_NO_AUTO_DECLARATIONS
#define BOOST_NO_AUTO_MULTIDECLARATIONS #define BOOST_NO_AUTO_MULTIDECLARATIONS
@ -88,7 +91,6 @@
#define BOOST_NO_TEMPLATE_ALIASES #define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS #define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES #define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_VARIADIC_MACROS
#ifdef c_plusplus #ifdef c_plusplus
// EDG has "long long" in non-strict mode // EDG has "long long" in non-strict mode

View File

@ -89,7 +89,6 @@
# define BOOST_NO_EXCEPTIONS # define BOOST_NO_EXCEPTIONS
#endif #endif
// //
// Threading support: Turn this on unconditionally here (except for // Threading support: Turn this on unconditionally here (except for
// those platforms where we can know for sure). It will get turned off again // those platforms where we can know for sure). It will get turned off again
@ -148,8 +147,6 @@
// C++0x features not implemented in any GCC version // C++0x features not implemented in any GCC version
// //
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_NULLPTR
#define BOOST_NO_TEMPLATE_ALIASES #define BOOST_NO_TEMPLATE_ALIASES
// C++0x features in 4.3.n and later // C++0x features in 4.3.n and later
@ -211,6 +208,13 @@
# define BOOST_NO_UNICODE_LITERALS # define BOOST_NO_UNICODE_LITERALS
#endif #endif
// C++0x features in 4.5.n and later
//
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 6) || !defined(__GXX_EXPERIMENTAL_CXX0X__)
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_NULLPTR
#endif
// ConceptGCC compiler: // ConceptGCC compiler:
// http://www.generic-programming.org/software/ConceptGCC/ // http://www.generic-programming.org/software/ConceptGCC/
#ifdef __GXX_CONCEPTS__ #ifdef __GXX_CONCEPTS__
@ -231,8 +235,8 @@
# error "Compiler not configured - please reconfigure" # error "Compiler not configured - please reconfigure"
#endif #endif
// //
// last known and checked version is 4.4 (Pre-release): // last known and checked version is 4.6 (Pre-release):
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 4)) #if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 6))
# if defined(BOOST_ASSERT_CONFIG) # if defined(BOOST_ASSERT_CONFIG)
# error "Unknown compiler version - please run the configure tests and report the results" # error "Unknown compiler version - please run the configure tests and report the results"
# else # else

View File

@ -12,6 +12,8 @@
// Metrowerks C++ compiler setup: // Metrowerks C++ compiler setup:
#define BOOST_MWERKS __MWERKS__
// locale support is disabled when linking with the dynamic runtime // locale support is disabled when linking with the dynamic runtime
# ifdef _MSL_NO_LOCALE # ifdef _MSL_NO_LOCALE
# define BOOST_NO_STD_LOCALE # define BOOST_NO_STD_LOCALE

View File

@ -11,6 +11,10 @@
// Sun C++ compiler setup: // Sun C++ compiler setup:
// Macro identifying the Sun compiler
#define BOOST_SUNCC __SUNPRO_CC
# if __SUNPRO_CC <= 0x500 # if __SUNPRO_CC <= 0x500
# define BOOST_NO_MEMBER_TEMPLATES # define BOOST_NO_MEMBER_TEMPLATES
# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING # define BOOST_NO_FUNCTION_TEMPLATE_ORDERING

View File

@ -37,6 +37,9 @@
// //
#endif #endif
/// Visual Studio has no fenv.h
#define BOOST_NO_FENV_H
#if (_MSC_VER <= 1300) // 1300 == VC++ 7.0 #if (_MSC_VER <= 1300) // 1300 == VC++ 7.0
# if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) // VC7 bug with /Za # if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) // VC7 bug with /Za
@ -94,10 +97,6 @@
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS # define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
#endif #endif
#if _MSC_VER <= 1600 // 1600 == VC++ 10.0
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#endif
#if _MSC_VER == 1500 // 1500 == VC++ 9.0 #if _MSC_VER == 1500 // 1500 == VC++ 9.0
// A bug in VC9: // A bug in VC9:
# define BOOST_NO_ADL_BARRIER # define BOOST_NO_ADL_BARRIER
@ -181,6 +180,7 @@
#define BOOST_NO_STATIC_ASSERT #define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_NULLPTR #define BOOST_NO_NULLPTR
#endif // _MSC_VER < 1600 #endif // _MSC_VER < 1600
#if _MSC_VER >= 1600 #if _MSC_VER >= 1600
#define BOOST_HAS_STDINT_H #define BOOST_HAS_STDINT_H
#endif #endif
@ -198,10 +198,11 @@
#define BOOST_NO_INITIALIZER_LISTS #define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_RAW_LITERALS #define BOOST_NO_RAW_LITERALS
#define BOOST_NO_SCOPED_ENUMS #define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_TEMPLATE_ALIASES #define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS #define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES #define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
// //
// prefix and suffix headers: // prefix and suffix headers:
// //

View File

@ -1,4 +1,5 @@
// (C) Copyright John Maddock 2001 - 2002. // (C) Copyright John Maddock 2001 - 2002.
// (C) Copyright Bryce Lelbach 2010
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -9,6 +10,13 @@
#define BOOST_PLATFORM "IBM Aix" #define BOOST_PLATFORM "IBM Aix"
#define BOOST_NIX 1
//#define BOOST_GENETIC_NIX 1
#define BOOST_TRADEMARK_NIX 1
//#define BOOST_FUNCTIONAL_NIX 1
#define BOOST_AIX 1
#define BOOST_HAS_UNISTD_H #define BOOST_HAS_UNISTD_H
#define BOOST_HAS_NL_TYPES_H #define BOOST_HAS_NL_TYPES_H
#define BOOST_HAS_NANOSLEEP #define BOOST_HAS_NANOSLEEP

View File

@ -1,4 +1,5 @@
// (C) Copyright John Maddock 2002. // (C) Copyright John Maddock 2002.
// (C) Copyright Bryce Lelbach 2010
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,6 +8,8 @@
#define BOOST_PLATFORM "AmigaOS" #define BOOST_PLATFORM "AmigaOS"
#define BOOST_AMIGA 1
#define BOOST_DISABLE_THREADS #define BOOST_DISABLE_THREADS
#define BOOST_NO_CWCHAR #define BOOST_NO_CWCHAR
#define BOOST_NO_STD_WSTRING #define BOOST_NO_STD_WSTRING

View File

@ -1,4 +1,5 @@
// (C) Copyright John Maddock 2001. // (C) Copyright John Maddock 2001.
// (C) Copyright Bryce Lelbach 2010
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -9,6 +10,13 @@
#define BOOST_PLATFORM "BeOS" #define BOOST_PLATFORM "BeOS"
#define BOOST_BEOS 1
#define BOOST_NIX 1
//#define BOOST_GENETIC_NIX 1
//#define BOOST_TRADEMARK_NIX 1
#define BOOST_FUNCTIONAL_NIX 1
#define BOOST_NO_CWCHAR #define BOOST_NO_CWCHAR
#define BOOST_NO_CWCTYPE #define BOOST_NO_CWCTYPE
#define BOOST_HAS_UNISTD_H #define BOOST_HAS_UNISTD_H

View File

@ -1,6 +1,7 @@
// (C) Copyright John Maddock 2001 - 2003. // (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Darin Adler 2001. // (C) Copyright Darin Adler 2001.
// (C) Copyright Douglas Gregor 2002. // (C) Copyright Douglas Gregor 2002.
// (C) Copyright Bryce Lelbach 2010
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -9,18 +10,30 @@
// generic BSD config options: // generic BSD config options:
#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__) #if !defined(__FreeBSD__) && \
#error "This platform is not BSD" !defined(__NetBSD__) && \
!defined(__OpenBSD__) && \
!defined(__DragonFly__)
#error "This platform is not BSD"
#endif #endif
#define BOOST_NIX 1
#define BOOST_GENETIC_NIX 1
//#define BOOST_TRADEMARK_NIX 1
//#define BOOST_FUNCTIONAL_NIX 1
#ifdef __FreeBSD__ #ifdef __FreeBSD__
#define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__) #define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__)
#define BOOST_FREEBSD __FreeBSD__
#elif defined(__NetBSD__) #elif defined(__NetBSD__)
#define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__) #define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__)
#define BOOST_NETBSD __NetBSD__
#elif defined(__OpenBSD__) #elif defined(__OpenBSD__)
#define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__) #define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__)
#define BOOST_OPENBSD __OpenBSD__
#elif defined(__DragonFly__) #elif defined(__DragonFly__)
#define BOOST_PLATFORM "DragonFly " BOOST_STRINGIZE(__DragonFly__) #define BOOST_PLATFORM "DragonFly " BOOST_STRINGIZE(__DragonFly__)
#define BOOST_DFBSD __DragonFly__
#endif #endif
// //

View File

@ -1,52 +1,56 @@
// (C) Copyright John Maddock 2001 - 2003. // (C) Copyright John Maddock 2001 - 2003
// Use, modification and distribution are subject to the // (C) Copyright Bryce Lelbach 2010
// Boost Software License, Version 1.0. (See accompanying file //
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
// See http://www.boost.org for most recent version.
// See http://www.boost.org for most recent version. #define BOOST_PLATFORM "Cygwin" // Platform name.
#define BOOST_CYGWIN __CYGWIN__ // Boost platform ID macros.
// cygwin specific config options:
#define BOOST_PLATFORM "Cygwin"
#define BOOST_HAS_DIRENT_H #define BOOST_HAS_DIRENT_H
#define BOOST_HAS_LOG1P #define BOOST_HAS_LOG1P
#define BOOST_HAS_EXPM1 #define BOOST_HAS_EXPM1
// #define BOOST_NIX 1
// Threading API: //#define BOOST_GENETIC_NIX 1
// See if we have POSIX threads, if we do use them, otherwise //#define BOOST_TRADEMARK_NIX 1
// revert to native Win threads. #define BOOST_FUNCTIONAL_NIX 1
// See if we have POSIX threads, otherwise revert to native Win threads.
#define BOOST_HAS_UNISTD_H #define BOOST_HAS_UNISTD_H
#include <unistd.h> #include <unistd.h>
#if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS)
# define BOOST_HAS_PTHREADS #if defined(_POSIX_THREADS) && (_POSIX_THREADS + 0 >= 0) && \
# define BOOST_HAS_SCHED_YIELD !defined(BOOST_HAS_WINTHREADS)
# define BOOST_HAS_GETTIMEOFDAY #define BOOST_HAS_PTHREADS
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE #define BOOST_HAS_SCHED_YIELD
# define BOOST_HAS_SIGACTION #define BOOST_HAS_GETTIMEOFDAY
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
#define BOOST_HAS_SIGACTION
#else #else
# if !defined(BOOST_HAS_WINTHREADS) #if !defined(BOOST_HAS_WINTHREADS)
# define BOOST_HAS_WINTHREADS #define BOOST_HAS_WINTHREADS
# endif #endif
# define BOOST_HAS_FTIME #define BOOST_HAS_FTIME
#endif #endif
// // Find out if we have a stdint.h, there should be a better way to do this.
// find out if we have a stdint.h, there should be a better way to do this:
//
#include <sys/types.h> #include <sys/types.h>
#ifdef _STDINT_H #ifdef _STDINT_H
#define BOOST_HAS_STDINT_H #define BOOST_HAS_STDINT_H
#endif #endif
// boilerplate code: /// Cygwin has no fenv.h
#define BOOST_NO_FENV_H
#include <boost/config/posix_features.hpp> #include <boost/config/posix_features.hpp>
// // Cygwin lies about XSI conformance, there is no nl_types.h.
// Cygwin lies about XSI conformance, there is no nl_types.h:
//
#ifdef BOOST_HAS_NL_TYPES_H #ifdef BOOST_HAS_NL_TYPES_H
# undef BOOST_HAS_NL_TYPES_H #undef BOOST_HAS_NL_TYPES_H
#endif #endif

View File

@ -3,6 +3,7 @@
// (C) Copyright David Abrahams 2002. // (C) Copyright David Abrahams 2002.
// (C) Copyright Toon Knapen 2003. // (C) Copyright Toon Knapen 2003.
// (C) Copyright Boris Gubenko 2006 - 2007. // (C) Copyright Boris Gubenko 2006 - 2007.
// (C) Copyright Bryce Lelbach 2010
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -13,6 +14,13 @@
#define BOOST_PLATFORM "HP-UX" #define BOOST_PLATFORM "HP-UX"
#define BOOST_HPUX 1 // platform ID macro
#define BOOST_NIX 1
//#define BOOST_GENETIC_NIX 1
#define BOOST_TRADEMARK_NIX 1
//#define BOOST_FUNCTIONAL_NIX 1
// In principle, HP-UX has a nice <stdint.h> under the name <inttypes.h> // In principle, HP-UX has a nice <stdint.h> under the name <inttypes.h>
// However, it has the following problem: // However, it has the following problem:
// Use of UINT32_C(0) results in "0u l" for the preprocessed source // Use of UINT32_C(0) results in "0u l" for the preprocessed source

View File

@ -1,5 +1,6 @@
// (C) Copyright John Maddock 2001 - 2003. // (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Jens Maurer 2003. // (C) Copyright Jens Maurer 2003.
// (C) Copyright Bryce Lelbach 2010
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -11,6 +12,11 @@
#define BOOST_PLATFORM "SGI Irix" #define BOOST_PLATFORM "SGI Irix"
#define BOOST_NIX 1
//#define BOOST_GENETIC_NIX 1
#define BOOST_TRADEMARK_NIX 1
//#define BOOST_FUNCTIONAL_NIX 1
#define BOOST_NO_SWPRINTF #define BOOST_NO_SWPRINTF
// //
// these are not auto detected by POSIX feature tests: // these are not auto detected by POSIX feature tests:

View File

@ -1,5 +1,6 @@
// (C) Copyright John Maddock 2001 - 2003. // (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Jens Maurer 2001 - 2003. // (C) Copyright Jens Maurer 2001 - 2003.
// (C) Copyright Bryce Lelbach 2010
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -13,6 +14,13 @@
// make sure we have __GLIBC_PREREQ if available at all // make sure we have __GLIBC_PREREQ if available at all
#include <cstdlib> #include <cstdlib>
#define BOOST_NIX 1
//#define BOOST_GENETIC_NIX 1
//#define BOOST_TRADEMARK_NIX 1
#define BOOST_FUNCTIONAL_NIX 1
#define BOOST_LINUX 1
// //
// <stdint.h> added to glibc 2.1.1 // <stdint.h> added to glibc 2.1.1
// We can only test for 2.1 though: // We can only test for 2.1 though:

View File

@ -1,6 +1,7 @@
// (C) Copyright John Maddock 2001 - 2003. // (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Darin Adler 2001 - 2002. // (C) Copyright Darin Adler 2001 - 2002.
// (C) Copyright Bill Kempf 2002. // (C) Copyright Bill Kempf 2002.
// (C) Copyright Bryce Lelbach 2010
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -13,6 +14,11 @@
#if __MACH__ && !defined(_MSL_USING_MSL_C) #if __MACH__ && !defined(_MSL_USING_MSL_C)
#define BOOST_NIX 1
//#define BOOST_GENETIC_NIX 1
#define BOOST_TRADEMARK_NIX 1
//#define BOOST_FUNCTIONAL_NIX 1
// Using the Mac OS X system BSD-style C library. // Using the Mac OS X system BSD-style C library.
# ifndef BOOST_HAS_UNISTD_H # ifndef BOOST_HAS_UNISTD_H

View File

@ -1,4 +1,5 @@
// (C) Copyright Jim Douglas 2005. // (C) Copyright Jim Douglas 2005.
// (C) Copyright Bryce Lelbach 2010
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -7,8 +8,15 @@
// QNX specific config options: // QNX specific config options:
#define BOOST_QNX 1
#define BOOST_PLATFORM "QNX" #define BOOST_PLATFORM "QNX"
#define BOOST_NIX 1
//#define BOOST_GENETIC_NIX 1
//#define BOOST_TRADEMARK_NIX 1
#define BOOST_FUNCTIONAL_NIX 1
#define BOOST_HAS_UNISTD_H #define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp> #include <boost/config/posix_features.hpp>

View File

@ -1,5 +1,6 @@
// (C) Copyright John Maddock 2001 - 2003. // (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Jens Maurer 2003. // (C) Copyright Jens Maurer 2003.
// (C) Copyright Bryce Lelbach 2010
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -10,6 +11,11 @@
#define BOOST_PLATFORM "Sun Solaris" #define BOOST_PLATFORM "Sun Solaris"
#define BOOST_NIX 1
//#define BOOST_GENETIC_NIX 1
#define BOOST_TRADEMARK_NIX 1
//#define BOOST_FUNCTIONAL_NIX 1
#define BOOST_HAS_GETTIMEOFDAY #define BOOST_HAS_GETTIMEOFDAY
// boilerplate code: // boilerplate code:

View File

@ -1,6 +1,7 @@
// (C) Copyright Yuriy Krasnoschek 2009. // (C) Copyright Yuriy Krasnoschek 2009.
// (C) Copyright John Maddock 2001 - 2003. // (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Jens Maurer 2001 - 2003. // (C) Copyright Jens Maurer 2001 - 2003.
// (C) Copyright Bryce Lelbach 2010
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -9,13 +10,16 @@
// symbian specific config options: // symbian specific config options:
#define BOOST_PLATFORM "Symbian" #define BOOST_PLATFORM "Symbian"
#define BOOST_SYMBIAN 1 #define BOOST_SYMBIAN 1
#if defined(__S60_3X__) #if defined(__S60_3X__)
// Open C / C++ plugin was introdused in this SDK, earlier versions don't have CRT / STL // Open C / C++ plugin was introdused in this SDK, earlier versions don't have
// CRT / STL
# define BOOST_NIX 1
//# define BOOST_GENETIC_NIX 1
//# define BOOST_TRADEMARK_NIX 1
# define BOOST_FUNCTIONAL_NIX 1
# define BOOST_S60_3rd_EDITION_FP2_OR_LATER_SDK # define BOOST_S60_3rd_EDITION_FP2_OR_LATER_SDK
// make sure we have __GLIBC_PREREQ if available at all // make sure we have __GLIBC_PREREQ if available at all
# include <cstdlib> # include <cstdlib>

View File

@ -1,4 +1,5 @@
// (C) Copyright Dustin Spicuzza 2009. // (C) Copyright Dustin Spicuzza 2009.
// (C) Copyright Bryce Lelbach 2010
// Use, modification and distribution are subject to the // Use, modification and distribution are subject to the
// Boost Software License, Version 1.0. (See accompanying file // Boost Software License, Version 1.0. (See accompanying file
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@ -23,6 +24,11 @@
#define _POSIX_TIMERS 1 #define _POSIX_TIMERS 1
#define _POSIX_THREADS 1 #define _POSIX_THREADS 1
#define BOOST_NIX 1
//#define BOOST_GENETIC_NIX 1
#define BOOST_TRADEMARK_NIX 1
//#define BOOST_FUNCTIONAL_NIX 1
// vxworks doesn't work with asio serial ports // vxworks doesn't work with asio serial ports
#define BOOST_ASIO_DISABLE_SERIAL_PORT #define BOOST_ASIO_DISABLE_SERIAL_PORT

View File

@ -31,7 +31,6 @@
# define BOOST_SYMBOL_IMPORT __declspec(dllimport) # define BOOST_SYMBOL_IMPORT __declspec(dllimport)
#endif #endif
#if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0))) #if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0)))
# define BOOST_HAS_STDINT_H # define BOOST_HAS_STDINT_H
# define __STDC_LIMIT_MACROS # define __STDC_LIMIT_MACROS
@ -39,6 +38,11 @@
# define BOOST_HAS_UNISTD_H # define BOOST_HAS_UNISTD_H
#endif #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, // Win32 will normally be using native Win32 threads,
// but there is a pthread library avaliable as an option, // but there is a pthread library avaliable as an option,

View File

@ -107,6 +107,7 @@
# define BOOST_NO_0X_HDR_UNORDERED_SET # define BOOST_NO_0X_HDR_UNORDERED_SET
# define BOOST_NO_0X_HDR_TUPLE # define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_0X_HDR_TYPEINDEX # define BOOST_NO_0X_HDR_TYPEINDEX
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
#endif #endif
#if !defined(_HAS_TR1_IMPORTS) && !defined(BOOST_NO_0X_HDR_TUPLE) #if !defined(_HAS_TR1_IMPORTS) && !defined(BOOST_NO_0X_HDR_TUPLE)
@ -125,7 +126,6 @@
# define BOOST_NO_0X_HDR_MUTEX # define BOOST_NO_0X_HDR_MUTEX
# define BOOST_NO_0X_HDR_RATIO # define BOOST_NO_0X_HDR_RATIO
# define BOOST_NO_0X_HDR_THREAD # define BOOST_NO_0X_HDR_THREAD
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
#ifdef _CPPLIB_VER #ifdef _CPPLIB_VER
# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER # define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER

View File

@ -54,7 +54,6 @@
# define BOOST_HAS_THREADS # define BOOST_HAS_THREADS
#endif #endif
#if !defined(_GLIBCPP_USE_LONG_LONG) \ #if !defined(_GLIBCPP_USE_LONG_LONG) \
&& !defined(_GLIBCXX_USE_LONG_LONG)\ && !defined(_GLIBCXX_USE_LONG_LONG)\
&& defined(BOOST_HAS_LONG_LONG) && defined(BOOST_HAS_LONG_LONG)
@ -63,6 +62,16 @@
# undef BOOST_HAS_LONG_LONG # undef BOOST_HAS_LONG_LONG
#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
#if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0 #if defined(__GLIBCXX__) || (defined(__GLIBCPP__) && __GLIBCPP__>=20020514) // GCC >= 3.1.0
# define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx # define BOOST_STD_EXTENSION_NAMESPACE __gnu_cxx
# define BOOST_HAS_SLIST # define BOOST_HAS_SLIST

View File

@ -40,6 +40,17 @@
# define BOOST_NO_STRINGSTREAM # define BOOST_NO_STRINGSTREAM
#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
// //
// Assume no std::locale without own iostreams (this may be an // Assume no std::locale without own iostreams (this may be an
// incorrect assumption in some cases): // incorrect assumption in some cases):

View File

@ -16,6 +16,16 @@
# endif # endif
#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 // __STL_STATIC_CONST_INIT_BUG implies BOOST_NO_LIMITS_COMPILE_TIME_CONSTANTS
// for versions prior to 4.1(beta) // for versions prior to 4.1(beta)

View File

@ -12,6 +12,16 @@
#define BOOST_HAS_MACRO_USE_FACET #define BOOST_HAS_MACRO_USE_FACET
#define BOOST_NO_STD_MESSAGES #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 // C++0x headers not yet implemented
// //
# define BOOST_NO_0X_HDR_ARRAY # define BOOST_NO_0X_HDR_ARRAY

View File

@ -349,6 +349,13 @@
#define BOOST_HAS_RVALUE_REFS #define BOOST_HAS_RVALUE_REFS
#endif #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
// BOOST_HAS_ABI_HEADERS // BOOST_HAS_ABI_HEADERS
// This macro gets set if we have headers that fix the ABI, // This macro gets set if we have headers that fix the ABI,
// and prevent ODR violations when linking to external libraries: // and prevent ODR violations when linking to external libraries:
@ -632,6 +639,10 @@ namespace std{ using ::typeinfo; }
# if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \ # if defined(unix) || defined(__unix) || defined(_XOPEN_SOURCE) \
|| defined(_POSIX_SOURCE) || defined(_POSIX_SOURCE)
# define BOOST_PLATFORM "Generic Unix" # define BOOST_PLATFORM "Generic Unix"
# define BOOST_NIX 1
//# define BOOST_GENETIC_NIX 1
//# define BOOST_TRADEMARK_NIX 1
# define BOOST_FUNCTIONAL_NIX 1
# else # else
# define BOOST_PLATFORM "Unknown" # define BOOST_PLATFORM "Unknown"
# endif # endif
@ -643,5 +654,19 @@ namespace std{ using ::typeinfo; }
# ifndef BOOST_GPU_ENABLED # ifndef BOOST_GPU_ENABLED
# define BOOST_GPU_ENABLED # define BOOST_GPU_ENABLED
# endif # 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
#endif #endif

78
test/boost_no_fenv_h.ipp Normal file
View File

@ -0,0 +1,78 @@
// (C) Copyright John Maddock 2001.
// (C) Copyright Bryce Lelbach 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/libs/config for most recent version.
// MACRO: BOOST_NO_FENV_H
// TITLE: fenv.h
// DESCRIPTION: There is no POSIX <fenv.h> available. If <fenv.h> is
// available, <boost/detail/fenv.hpp> should be included
// instead of directly including <fenv.h>.
#include <boost/detail/fenv.hpp>
namespace boost_no_fenv_h {
int test()
{
/// POSIX required typedefs
typedef ::fenv_t has_fenv_t;
typedef ::fexcept_t has_fexcept_t;
/// POSIX required macros
#if !defined(FE_DIVBYZERO)
#error platform does not define FE_DIVBYZERO
#endif
#if !defined(FE_INEXACT)
#error platform does not define FE_INEXACT
#endif
#if !defined(FE_INVALID)
#error platform does not define FE_INVALID
#endif
#if !defined(FE_OVERFLOW)
#error platform does not define FE_OVERFLOW
#endif
#if !defined(FE_UNDERFLOW)
#error platform does not define FE_UNDERFLOW
#endif
#if !defined(FE_DOWNWARD)
#error platform does not define FE_DOWNWARD
#endif
#if !defined(FE_TONEAREST)
#error platform does not define FE_TONEAREST
#endif
#if !defined(FE_UPWARD)
#error platform does not define FE_UPWARD
#endif
#if !defined(FE_DFL_ENV)
#error platform does not define FE_DFL_ENV
#endif
int (*has_feclearexcept)(int) = ::feclearexcept;
int (*has_fegetenv)(fenv_t*) = ::fegetenv;
int (*has_fegetexcept)(fexcept_t*, int) = ::fegetexcept;
int (*has_fegetround)(void) = ::fegetround;
int (*has_feholdexcept)(fenv_t*) = ::feholdexcept;
int (*has_feraiseexcept)(int) = ::feraiseexcept;
int (*has_fesetenv)(const fenv_t*) = ::fesetenv;
int (*has_fesetexceptflag)(const fexcept_t*, int) = ::fesetexceptflag;
int (*has_fesetround)(int) = ::fesetround;
int (*has_fetestexcept)(int) = ::fetestexcept;
int (*has_feupdateenv)(const fenv_t*) = ::feupdateenv;
return 0;
}
}

View File

@ -27,6 +27,10 @@
#include <unistd.h> #include <unistd.h>
#endif #endif
#if defined(__MINGW32__)
# include <_mingw.h>
#endif
static unsigned int indent = 4; static unsigned int indent = 4;
static unsigned int width = 40; static unsigned int width = 40;
@ -794,6 +798,8 @@ void print_platform_macros()
PRINT_MACRO(_THREAD_SAFE); PRINT_MACRO(_THREAD_SAFE);
PRINT_MACRO(_XOPEN_SOURCE_EXTENDED); PRINT_MACRO(_XOPEN_SOURCE_EXTENDED);
PRINT_MACRO(XPG); PRINT_MACRO(XPG);
PRINT_MACRO(__MINGW32_MAJOR_VERSION);
PRINT_MACRO(__MINGW32_MINOR_VERSION);
// POSIX: // POSIX:
PRINT_MACRO(_POSIX_ADVISORY_INFO); PRINT_MACRO(_POSIX_ADVISORY_INFO);
PRINT_MACRO(_POSIX_ASYNCHRONOUS_IO); PRINT_MACRO(_POSIX_ASYNCHRONOUS_IO);
@ -900,6 +906,7 @@ void print_boost_macros()
PRINT_MACRO(BOOST_DISABLE_THREADS); PRINT_MACRO(BOOST_DISABLE_THREADS);
PRINT_MACRO(BOOST_DISABLE_WIN32); PRINT_MACRO(BOOST_DISABLE_WIN32);
PRINT_MACRO(BOOST_HAS_THREADS); PRINT_MACRO(BOOST_HAS_THREADS);
PRINT_MACRO(BOOST_WINDOWS);
// BEGIN GENERATED BLOCK DO NOT EDIT THIS!!!!!! // BEGIN GENERATED BLOCK DO NOT EDIT THIS!!!!!!
PRINT_MACRO(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG); PRINT_MACRO(BOOST_BCB_PARTIAL_SPECIALIZATION_BUG);
@ -1071,30 +1078,15 @@ void print_boost_macros()
PRINT_MACRO(BOOST_NO_VARIADIC_TEMPLATES); PRINT_MACRO(BOOST_NO_VARIADIC_TEMPLATES);
PRINT_MACRO(BOOST_NO_VOID_RETURNS); PRINT_MACRO(BOOST_NO_VOID_RETURNS);
// END GENERATED BLOCK // END GENERATED BLOCK
PRINT_MACRO(BOOST_INTEL); PRINT_MACRO(BOOST_INTEL);
PRINT_MACRO(BOOST_MSVC); PRINT_MACRO(BOOST_MSVC);
PRINT_MACRO(BOOST_STD_EXTENSION_NAMESPACE); PRINT_MACRO(BOOST_STD_EXTENSION_NAMESPACE);
PRINT_MACRO(BOOST_UNREACHABLE_RETURN(0)); PRINT_MACRO(BOOST_UNREACHABLE_RETURN(0));
PRINT_MACRO(BOOST_CONSTEXPR);
PRINT_MACRO(BOOST_CONSTEXPR_OR_CONST);
PRINT_MACRO(BOOST_STATIC_CONSTEXPR);
} }
void print_separator() void print_separator()

33
test/no_fenv_h_fail.cpp Normal file
View File

@ -0,0 +1,33 @@
// Copyright Bryce Lelbach 2010.
// Copyright John Maddock 2002-4.
// 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 the most recent version.
// Test file for macro BOOST_NO_FENV_H
// This file should not compile, if it does then
// BOOST_NO_FENV_H should not be defined.
// See file boost_no_fenv_h.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifdef BOOST_NO_FENV_H
#include "boost_no_fenv_h.ipp"
#else
#error "this file should not compile"
#endif
int main( int, char *[] )
{
return boost_no_fenv_h::test();
}

33
test/no_fenv_h_pass.cpp Normal file
View File

@ -0,0 +1,33 @@
// Copyright Bryce Lelbach 2010.
// Copyright John Maddock 2002-4.
// 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 the most recent version.
// Test file for macro BOOST_NO_FENV_H
// This file should compile, if it does not then
// BOOST_NO_FENV_H should be defined.
// See file boost_no_fenv_h.ipp for details
// Must not have BOOST_ASSERT_CONFIG set; it defeats
// the objective of this file:
#ifdef BOOST_ASSERT_CONFIG
# undef BOOST_ASSERT_CONFIG
#endif
#include <boost/config.hpp>
#include "test.hpp"
#ifndef BOOST_NO_FENV_H
#include "boost_no_fenv_h.ipp"
#else
namespace boost_no_fenv_h = empty_boost;
#endif
int main( int, char *[] )
{
return boost_no_fenv_h::test();
}