Add new macro BOOST_GCC as per #7841.

Refs #7841.

[SVN r83008]
This commit is contained in:
John Maddock
2013-02-19 16:26:06 +00:00
parent f6a50c0ed9
commit 02602b9139
4 changed files with 127 additions and 25 deletions

View File

@ -93,7 +93,7 @@
</td>
<td>
<p>
The compiler exibits certain partial specialisation bug - probably
The compiler exhibits certain partial specialisation bug - probably
Borland C++ Builder specific.
</p>
</td>
@ -1832,6 +1832,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">array</span><span class="special">&gt;</span></code>.
This macro is only guaranteed to be defined after including one
of the headers from Boost.TR1. Further this macro is now deprecated
in favour of BOOST_NO_CXX11_HDR_ARRAY.
</p>
</td>
</tr>
@ -1884,7 +1887,9 @@
</td>
<td>
<p>
The library has TR1 conforming reference wrappers in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
The library has TR1 conforming reference wrappers in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1.
Further this macro is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
</p>
</td>
</tr>
@ -1901,7 +1906,9 @@
</td>
<td>
<p>
The library has a TR1 conforming result_of template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
The library has a TR1 conforming result_of template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1.
Further this macro is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
</p>
</td>
</tr>
@ -1918,7 +1925,9 @@
</td>
<td>
<p>
The library has a TR1 conforming mem_fn function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
The library has a TR1 conforming mem_fn function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1.
Further this macro is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
</p>
</td>
</tr>
@ -1935,7 +1944,9 @@
</td>
<td>
<p>
The library has a TR1 conforming bind function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
The library has a TR1 conforming bind function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1.
Further this macro is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
</p>
</td>
</tr>
@ -1952,7 +1963,9 @@
</td>
<td>
<p>
The library has a TR1 conforming function class template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
The library has a TR1 conforming function class template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1.
Further this macro is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
</p>
</td>
</tr>
@ -1969,7 +1982,9 @@
</td>
<td>
<p>
The library has a TR1 conforming hash function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>.
The library has a TR1 conforming hash function template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span></code>. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1.
Further this macro is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
</p>
</td>
</tr>
@ -1988,6 +2003,9 @@
<p>
The library has a TR1 conforming <code class="computeroutput"><span class="identifier">shared_ptr</span></code>
class template in <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">memory</span><span class="special">&gt;</span></code>.
This macro is only guaranteed to be defined after including one
of the headers from Boost.TR1. Further this macro is now deprecated
in favour of BOOST_NO_CXX11_SMART_PTR.
</p>
</td>
</tr>
@ -2005,6 +2023,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">random</span><span class="special">&gt;</span></code>.
This macro is only guaranteed to be defined after including one
of the headers from Boost.TR1. Further this macro is now deprecated
in favour of BOOST_NO_CXX11_HDR_RANDOM.
</p>
</td>
</tr>
@ -2022,6 +2043,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">regex</span><span class="special">&gt;</span></code>.
This macro is only guaranteed to be defined after including one
of the headers from Boost.TR1. Further this macro is now deprecated
in favour of BOOST_NO_CXX11_HDR_REGEX.
</p>
</td>
</tr>
@ -2039,6 +2063,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">tuple</span><span class="special">&gt;</span></code>.
This macro is only guaranteed to be defined after including one
of the headers from Boost.TR1. Further this macro is now deprecated
in favour of BOOST_NO_CXX11_HDR_TUPLE.
</p>
</td>
</tr>
@ -2056,6 +2083,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">type_traits</span><span class="special">&gt;</span></code>.
This macro is only guaranteed to be defined after including one
of the headers from Boost.TR1. Further this macro is now deprecated
in favour of BOOST_NO_CXX11_HDR_TYPE_TRAITS.
</p>
</td>
</tr>
@ -2074,6 +2104,9 @@
<p>
The library has the TR1 additions to <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">utility</span><span class="special">&gt;</span></code>
(tuple interface to <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code>).
This macro is only guaranteed to be defined after including one
of the headers from Boost.TR1. Further this macro is now deprecated
in favour of BOOST_NO_CXX11_HDR_TUPLE.
</p>
</td>
</tr>
@ -2091,6 +2124,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">unordered_map</span><span class="special">&gt;</span></code>.
This macro is only guaranteed to be defined after including one
of the headers from Boost.TR1. Further this macro is now deprecated
in favour of BOOST_NO_CXX11_HDR_UNORDERED_MAP.
</p>
</td>
</tr>
@ -2108,6 +2144,9 @@
<td>
<p>
The library has a TR1 conforming version of <code class="computeroutput"><span class="special">&lt;</span><span class="identifier">unordered_set</span><span class="special">&gt;</span></code>.
This macro is only guaranteed to be defined after including one
of the headers from Boost.TR1. Further this macro is now deprecated
in favour of BOOST_NO_CXX11_HDR_UNORDERED_SET.
</p>
</td>
</tr>
@ -3656,6 +3695,29 @@
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_GCC</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 compiler is really GCC, as opposed to one of the
many other compilers that also define <code class="computeroutput"><span class="identifier">__GNUC__</span></code>.
Has the value: <code class="computeroutput"><span class="identifier">__GNUC__</span>
<span class="special">*</span> <span class="number">10000</span>
<span class="special">+</span> <span class="identifier">__GNUC_MINOR__</span>
<span class="special">*</span> <span class="number">100</span>
<span class="special">+</span> <span class="identifier">__GNUC_PATCHLEVEL__</span></code>.
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">BOOST_INTEL</span></code>

View File

@ -951,7 +951,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: January 17, 2013 at 02:10:17 GMT</small></p></td>
<td align="left"><p><small>Last revised: February 19, 2013 at 16:25:18 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>

View File

@ -28,7 +28,7 @@ compiler's conformance with the 2003 standard.
[[`BOOST_BCB_PARTIAL_SPECIALIZATION_BUG`][Compiler][
The compiler exibits certain partial specialisation bug - probably Borland
The compiler exhibits certain partial specialisation bug - probably Borland
C++ Builder specific.
]]
[[`BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL`][Compiler][
@ -429,7 +429,9 @@ The standard library lacks a conforming `std::use_facet`, but has a workaround
class-version that does the job. This is primarily for the STLport std lib.
]]
[[`BOOST_HAS_TR1_ARRAY`][Standard library][
The library has a TR1 conforming version of `<array>`.
The library has a TR1 conforming version of `<array>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_ARRAY.
]]
[[`BOOST_HAS_TR1_COMPLEX_OVERLOADS`][Standard library][
The library has a version of `<complex>` that supports passing scalars to the
@ -440,46 +442,74 @@ The library has a version of `<complex>` that includes the new inverse trig
functions from TR1.
]]
[[`BOOST_HAS_TR1_REFERENCE_WRAPPER`][Standard library][
The library has TR1 conforming reference wrappers in `<functional>`.
The library has TR1 conforming reference wrappers in `<functional>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_RESULT_OF`][Standard library][
The library has a TR1 conforming result_of template in `<functional>`.
The library has a TR1 conforming result_of template in `<functional>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_MEM_FN`][Standard library][
The library has a TR1 conforming mem_fn function template in `<functional>`.
The library has a TR1 conforming mem_fn function template in `<functional>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_BIND`][Standard library][
The library has a TR1 conforming bind function template in `<functional>`.
The library has a TR1 conforming bind function template in `<functional>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_FUNCTION`][Standard library][
The library has a TR1 conforming function class template in `<functional>`.
The library has a TR1 conforming function class template in `<functional>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_HASH`][Standard library][
The library has a TR1 conforming hash function template in `<functional>`.
The library has a TR1 conforming hash function template in `<functional>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_FUNCTIONAL.
]]
[[`BOOST_HAS_TR1_SHARED_PTR`][Standard library][
The library has a TR1 conforming `shared_ptr` class template in `<memory>`.
The library has a TR1 conforming `shared_ptr` class template in `<memory>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_SMART_PTR.
]]
[[`BOOST_HAS_TR1_RANDOM`][Standard library][
The library has a TR1 conforming version of `<random>`.
The library has a TR1 conforming version of `<random>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_RANDOM.
]]
[[`BOOST_HAS_TR1_REGEX`][Standard library][
The library has a TR1 conforming version of `<regex>`.
The library has a TR1 conforming version of `<regex>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_REGEX.
]]
[[`BOOST_HAS_TR1_TUPLE`][Standard library][
The library has a TR1 conforming version of `<tuple>`.
The library has a TR1 conforming version of `<tuple>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_TUPLE.
]]
[[`BOOST_HAS_TR1_TYPE_TRAITS`][Standard library][
The library has a TR1 conforming version of `<type_traits>`.
The library has a TR1 conforming version of `<type_traits>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_TYPE_TRAITS.
]]
[[`BOOST_HAS_TR1_UTILITY`][Standard library][
The library has the TR1 additions to `<utility>` (tuple interface to `std::pair`).
The library has the TR1 additions to `<utility>` (tuple interface to `std::pair`). This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_TUPLE.
]]
[[`BOOST_HAS_TR1_UNORDERED_MAP`][Standard library][
The library has a TR1 conforming version of `<unordered_map>`.
The library has a TR1 conforming version of `<unordered_map>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_UNORDERED_MAP.
]]
[[`BOOST_HAS_TR1_UNORDERED_SET`][Standard library][
The library has a TR1 conforming version of `<unordered_set>`.
The library has a TR1 conforming version of `<unordered_set>`. This macro is only guaranteed
to be defined after including one of the headers from Boost.TR1. Further this macro
is now deprecated in favour of BOOST_NO_CXX11_HDR_UNORDERED_SET.
]]
[[`BOOST_HAS_TR1`][Standard library][
Implies all the other `BOOST_HAS_TR1_*` macros should be set.
@ -973,6 +1003,11 @@ Defined to a normalised 9 digit version of _MSC_FULL_VER (which sometimes only h
the macro has the form VVMMPPPPP where VV is the major version number, MM is the minor version number, and
PPPPP is the compiler build number.
]]
[[`BOOST_GCC`][`<boost/config.hpp>`][
Defined if the compiler is really GCC, as opposed to one
of the many other compilers that also define `__GNUC__`. Has the value:
`__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__`.
]]
[[`BOOST_INTEL`][`<boost/config.hpp>`][
Defined if the compiler is an Intel compiler, takes the same value as the
compiler version macro.

View File

@ -11,7 +11,12 @@
// See http://www.boost.org for most recent version.
// GNU C++ compiler setup:
// GNU C++ compiler setup.
//
// Define BOOST_GCC so we know this is "real" GCC and not some pretender:
//
#define BOOST_GCC (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#if __GNUC__ < 3
# if __GNUC_MINOR__ == 91