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>
</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>
<p>
<code class="computeroutput"><span class="identifier">BOOST_HAS_STDINT_H</span></code>
@ -3200,6 +3220,77 @@
</p>
</td>
</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>
</table></div>
</div>
@ -3390,6 +3481,96 @@
</td>
</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>
<p>
<code class="computeroutput"><span class="identifier">BOOST_DINKUMWARE_STDLIB</span></code>

View File

@ -28,7 +28,7 @@
</h3></div></div></div>
<div><p class="copyright">Copyright &#169; 2001 -2007 Beman Dawes, Vesa Karvonen, John Maddock</p></div>
<div><div class="legalnotice">
<a name="id1010243"></a><p>
<a name="id896648"></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>
@ -950,7 +950,7 @@
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"><p><small>Last revised: September 26, 2010 at 09:24:20 GMT</small></p></td>
<td align="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>
</tr></table>
<hr>

View File

@ -71,6 +71,11 @@ The Platform does not provide `<wchar.h>` and `<cwchar>`.
[[`BOOST_NO_CWCTYPE`][Platform][
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][
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
\_\_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]
@ -845,6 +882,26 @@ Defined to 1 if the compiler is the Clang compiler.
[[`BOOST_WINDOWS`][`<boost/config.hpp>`][
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>`][
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.

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)
# undef BOOST_DYN_LINK
#endif
#if defined(BOOST_AUTO_LINK_NOMANGLE)
# undef BOOST_AUTO_LINK_NOMANGLE
#endif

View File

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

View File

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

View File

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

View File

@ -89,7 +89,6 @@
# define BOOST_NO_EXCEPTIONS
#endif
//
// Threading support: Turn this on unconditionally here (except for
// 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
//
#define BOOST_NO_CONSTEXPR
#define BOOST_NO_NULLPTR
#define BOOST_NO_TEMPLATE_ALIASES
// C++0x features in 4.3.n and later
@ -211,6 +208,13 @@
# define BOOST_NO_UNICODE_LITERALS
#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:
// http://www.generic-programming.org/software/ConceptGCC/
#ifdef __GXX_CONCEPTS__
@ -231,8 +235,8 @@
# error "Compiler not configured - please reconfigure"
#endif
//
// last known and checked version is 4.4 (Pre-release):
#if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ > 4))
// last known and checked version is 4.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

View File

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

View File

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

View File

@ -37,6 +37,9 @@
//
#endif
/// Visual Studio has no fenv.h
#define BOOST_NO_FENV_H
#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
@ -94,10 +97,6 @@
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
#endif
#if _MSC_VER <= 1600 // 1600 == VC++ 10.0
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
#endif
#if _MSC_VER == 1500 // 1500 == VC++ 9.0
// A bug in VC9:
# define BOOST_NO_ADL_BARRIER
@ -181,6 +180,7 @@
#define BOOST_NO_STATIC_ASSERT
#define BOOST_NO_NULLPTR
#endif // _MSC_VER < 1600
#if _MSC_VER >= 1600
#define BOOST_HAS_STDINT_H
#endif
@ -198,10 +198,11 @@
#define BOOST_NO_INITIALIZER_LISTS
#define BOOST_NO_RAW_LITERALS
#define BOOST_NO_SCOPED_ENUMS
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_TEMPLATE_ALIASES
#define BOOST_NO_UNICODE_LITERALS
#define BOOST_NO_VARIADIC_TEMPLATES
#define BOOST_NO_SFINAE_EXPR
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
//
// prefix and suffix headers:
//

View File

@ -1,4 +1,5 @@
// (C) Copyright John Maddock 2001 - 2002.
// (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)
@ -9,6 +10,13 @@
#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_NL_TYPES_H
#define BOOST_HAS_NANOSLEEP

View File

@ -1,4 +1,5 @@
// (C) Copyright John Maddock 2002.
// (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)
@ -7,6 +8,8 @@
#define BOOST_PLATFORM "AmigaOS"
#define BOOST_AMIGA 1
#define BOOST_DISABLE_THREADS
#define BOOST_NO_CWCHAR
#define BOOST_NO_STD_WSTRING

View File

@ -1,4 +1,5 @@
// (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)
@ -9,6 +10,13 @@
#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_CWCTYPE
#define BOOST_HAS_UNISTD_H

View File

@ -1,6 +1,7 @@
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Darin Adler 2001.
// (C) Copyright Douglas Gregor 2002.
// (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)
@ -9,18 +10,30 @@
// generic BSD config options:
#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__DragonFly__)
#error "This platform is not BSD"
#if !defined(__FreeBSD__) && \
!defined(__NetBSD__) && \
!defined(__OpenBSD__) && \
!defined(__DragonFly__)
#error "This platform is not BSD"
#endif
#define BOOST_NIX 1
#define BOOST_GENETIC_NIX 1
//#define BOOST_TRADEMARK_NIX 1
//#define BOOST_FUNCTIONAL_NIX 1
#ifdef __FreeBSD__
#define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__)
#define BOOST_PLATFORM "FreeBSD " BOOST_STRINGIZE(__FreeBSD__)
#define BOOST_FREEBSD __FreeBSD__
#elif defined(__NetBSD__)
#define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__)
#define BOOST_PLATFORM "NetBSD " BOOST_STRINGIZE(__NetBSD__)
#define BOOST_NETBSD __NetBSD__
#elif defined(__OpenBSD__)
#define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__)
#define BOOST_PLATFORM "OpenBSD " BOOST_STRINGIZE(__OpenBSD__)
#define BOOST_OPENBSD __OpenBSD__
#elif defined(__DragonFly__)
#define BOOST_PLATFORM "DragonFly " BOOST_STRINGIZE(__DragonFly__)
#define BOOST_PLATFORM "DragonFly " BOOST_STRINGIZE(__DragonFly__)
#define BOOST_DFBSD __DragonFly__
#endif
//

View File

@ -1,52 +1,56 @@
// (C) Copyright John Maddock 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)
// (C) Copyright John Maddock 2001 - 2003
// (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 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_LOG1P
#define BOOST_HAS_EXPM1
//
// Threading API:
// See if we have POSIX threads, if we do use them, otherwise
// revert to native Win threads.
#define BOOST_NIX 1
//#define BOOST_GENETIC_NIX 1
//#define BOOST_TRADEMARK_NIX 1
#define BOOST_FUNCTIONAL_NIX 1
// See if we have POSIX threads, otherwise revert to native Win threads.
#define BOOST_HAS_UNISTD_H
#include <unistd.h>
#if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS)
# define BOOST_HAS_PTHREADS
# define BOOST_HAS_SCHED_YIELD
# define BOOST_HAS_GETTIMEOFDAY
# define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
# define BOOST_HAS_SIGACTION
#if defined(_POSIX_THREADS) && (_POSIX_THREADS + 0 >= 0) && \
!defined(BOOST_HAS_WINTHREADS)
#define BOOST_HAS_PTHREADS
#define BOOST_HAS_SCHED_YIELD
#define BOOST_HAS_GETTIMEOFDAY
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE
#define BOOST_HAS_SIGACTION
#else
# if !defined(BOOST_HAS_WINTHREADS)
# define BOOST_HAS_WINTHREADS
# endif
# define BOOST_HAS_FTIME
#if !defined(BOOST_HAS_WINTHREADS)
#define BOOST_HAS_WINTHREADS
#endif
#define BOOST_HAS_FTIME
#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>
#ifdef _STDINT_H
#define BOOST_HAS_STDINT_H
#define BOOST_HAS_STDINT_H
#endif
// boilerplate code:
/// Cygwin has no fenv.h
#define BOOST_NO_FENV_H
#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
# undef BOOST_HAS_NL_TYPES_H
#undef BOOST_HAS_NL_TYPES_H
#endif

View File

@ -3,6 +3,7 @@
// (C) Copyright David Abrahams 2002.
// (C) Copyright Toon Knapen 2003.
// (C) Copyright Boris Gubenko 2006 - 2007.
// (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)
@ -13,6 +14,13 @@
#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>
// However, it has the following problem:
// 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 Jens Maurer 2003.
// (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)
@ -11,6 +12,11 @@
#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
//
// these are not auto detected by POSIX feature tests:

View File

@ -1,5 +1,6 @@
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Jens Maurer 2001 - 2003.
// (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)
@ -13,6 +14,13 @@
// make sure we have __GLIBC_PREREQ if available at all
#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
// We can only test for 2.1 though:

View File

@ -1,6 +1,7 @@
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Darin Adler 2001 - 2002.
// (C) Copyright Bill Kempf 2002.
// (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)
@ -13,6 +14,11 @@
#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.
# ifndef BOOST_HAS_UNISTD_H

View File

@ -1,4 +1,5 @@
// (C) Copyright Jim Douglas 2005.
// (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)
@ -7,8 +8,15 @@
// QNX specific config options:
#define BOOST_QNX 1
#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
#include <boost/config/posix_features.hpp>

View File

@ -1,5 +1,6 @@
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Jens Maurer 2003.
// (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)
@ -10,6 +11,11 @@
#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
// boilerplate code:

View File

@ -1,6 +1,7 @@
// (C) Copyright Yuriy Krasnoschek 2009.
// (C) Copyright John Maddock 2001 - 2003.
// (C) Copyright Jens Maurer 2001 - 2003.
// (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)
@ -9,13 +10,16 @@
// 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
// 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
// make sure we have __GLIBC_PREREQ if available at all
# include <cstdlib>

View File

@ -1,4 +1,5 @@
// (C) Copyright Dustin Spicuzza 2009.
// (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)
@ -23,6 +24,11 @@
#define _POSIX_TIMERS 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
#define BOOST_ASIO_DISABLE_SERIAL_PORT

View File

@ -31,7 +31,6 @@
# define BOOST_SYMBOL_IMPORT __declspec(dllimport)
#endif
#if defined(__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 2) || ((__MINGW32_MAJOR_VERSION == 2) && (__MINGW32_MINOR_VERSION >= 0)))
# define BOOST_HAS_STDINT_H
# define __STDC_LIMIT_MACROS
@ -39,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,

View File

@ -107,6 +107,7 @@
# define BOOST_NO_0X_HDR_UNORDERED_SET
# define BOOST_NO_0X_HDR_TUPLE
# define BOOST_NO_0X_HDR_TYPEINDEX
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
#endif
#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_RATIO
# define BOOST_NO_0X_HDR_THREAD
# define BOOST_NO_NUMERIC_LIMITS_LOWEST
#ifdef _CPPLIB_VER
# define BOOST_DINKUMWARE_STDLIB _CPPLIB_VER

View File

@ -54,7 +54,6 @@
# define BOOST_HAS_THREADS
#endif
#if !defined(_GLIBCPP_USE_LONG_LONG) \
&& !defined(_GLIBCXX_USE_LONG_LONG)\
&& defined(BOOST_HAS_LONG_LONG)
@ -63,6 +62,16 @@
# 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

View File

@ -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):

View File

@ -16,6 +16,16 @@
# 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)

View File

@ -12,6 +12,16 @@
#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_0X_HDR_ARRAY

View File

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

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