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>
<td> <td>
<p> <p>
The compiler exibits certain partial specialisation bug - probably The compiler exhibits certain partial specialisation bug - probably
Borland C++ Builder specific. Borland C++ Builder specific.
</p> </p>
</td> </td>
@@ -1832,6 +1832,9 @@
<td> <td>
<p> <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>. 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> </p>
</td> </td>
</tr> </tr>
@@ -1884,7 +1887,9 @@
</td> </td>
<td> <td>
<p> <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> </p>
</td> </td>
</tr> </tr>
@@ -1901,7 +1906,9 @@
</td> </td>
<td> <td>
<p> <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> </p>
</td> </td>
</tr> </tr>
@@ -1918,7 +1925,9 @@
</td> </td>
<td> <td>
<p> <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> </p>
</td> </td>
</tr> </tr>
@@ -1935,7 +1944,9 @@
</td> </td>
<td> <td>
<p> <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> </p>
</td> </td>
</tr> </tr>
@@ -1952,7 +1963,9 @@
</td> </td>
<td> <td>
<p> <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> </p>
</td> </td>
</tr> </tr>
@@ -1969,7 +1982,9 @@
</td> </td>
<td> <td>
<p> <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> </p>
</td> </td>
</tr> </tr>
@@ -1988,6 +2003,9 @@
<p> <p>
The library has a TR1 conforming <code class="computeroutput"><span class="identifier">shared_ptr</span></code> 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>. 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> </p>
</td> </td>
</tr> </tr>
@@ -2005,6 +2023,9 @@
<td> <td>
<p> <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>. 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> </p>
</td> </td>
</tr> </tr>
@@ -2022,6 +2043,9 @@
<td> <td>
<p> <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>. 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> </p>
</td> </td>
</tr> </tr>
@@ -2039,6 +2063,9 @@
<td> <td>
<p> <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>. 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> </p>
</td> </td>
</tr> </tr>
@@ -2056,6 +2083,9 @@
<td> <td>
<p> <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>. 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> </p>
</td> </td>
</tr> </tr>
@@ -2074,6 +2104,9 @@
<p> <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> 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>). (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> </p>
</td> </td>
</tr> </tr>
@@ -2091,6 +2124,9 @@
<td> <td>
<p> <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>. 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> </p>
</td> </td>
</tr> </tr>
@@ -2108,6 +2144,9 @@
<td> <td>
<p> <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>. 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> </p>
</td> </td>
</tr> </tr>
@@ -3656,6 +3695,29 @@
</td> </td>
</tr> </tr>
<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> <td>
<p> <p>
<code class="computeroutput"><span class="identifier">BOOST_INTEL</span></code> <code class="computeroutput"><span class="identifier">BOOST_INTEL</span></code>

View File

@@ -951,7 +951,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: 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> <td align="right"><div class="copyright-footer"></div></td>
</tr></table> </tr></table>
<hr> <hr>

View File

@@ -28,7 +28,7 @@ compiler's conformance with the 2003 standard.
[[`BOOST_BCB_PARTIAL_SPECIALIZATION_BUG`][Compiler][ [[`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. C++ Builder specific.
]] ]]
[[`BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL`][Compiler][ [[`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. class-version that does the job. This is primarily for the STLport std lib.
]] ]]
[[`BOOST_HAS_TR1_ARRAY`][Standard library][ [[`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][ [[`BOOST_HAS_TR1_COMPLEX_OVERLOADS`][Standard library][
The library has a version of `<complex>` that supports passing scalars to the 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. functions from TR1.
]] ]]
[[`BOOST_HAS_TR1_REFERENCE_WRAPPER`][Standard library][ [[`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][ [[`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][ [[`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][ [[`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][ [[`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][ [[`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][ [[`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][ [[`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][ [[`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][ [[`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][ [[`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][ [[`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][ [[`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][ [[`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][ [[`BOOST_HAS_TR1`][Standard library][
Implies all the other `BOOST_HAS_TR1_*` macros should be set. 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 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. 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>`][ [[`BOOST_INTEL`][`<boost/config.hpp>`][
Defined if the compiler is an Intel compiler, takes the same value as the Defined if the compiler is an Intel compiler, takes the same value as the
compiler version macro. compiler version macro.

View File

@@ -11,7 +11,12 @@
// See http://www.boost.org for most recent version. // 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__ < 3
# if __GNUC_MINOR__ == 91 # if __GNUC_MINOR__ == 91