mirror of
https://github.com/boostorg/mpl.git
synced 2025-08-06 16:24:35 +02:00
GCC workaround
[SVN r26217]
This commit is contained in:
@@ -18,6 +18,7 @@
|
|||||||
#include <boost/mpl/aux_/na_spec.hpp>
|
#include <boost/mpl/aux_/na_spec.hpp>
|
||||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||||
#include <boost/mpl/aux_/config/msvc.hpp>
|
#include <boost/mpl/aux_/config/msvc.hpp>
|
||||||
|
#include <boost/mpl/aux_/config/gcc.hpp>
|
||||||
#include <boost/mpl/aux_/config/workaround.hpp>
|
#include <boost/mpl/aux_/config/workaround.hpp>
|
||||||
|
|
||||||
namespace boost { namespace mpl {
|
namespace boost { namespace mpl {
|
||||||
@@ -28,13 +29,16 @@ template<
|
|||||||
, typename BOOST_MPL_AUX_NA_PARAM(F2)
|
, typename BOOST_MPL_AUX_NA_PARAM(F2)
|
||||||
>
|
>
|
||||||
struct eval_if
|
struct eval_if
|
||||||
#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
|
#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
|
||||||
: if_<C,F1,F2>::type
|
|| ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, >= 0x0300) \
|
||||||
{
|
&& BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) \
|
||||||
#else
|
)
|
||||||
{
|
{
|
||||||
typedef typename if_<C,F1,F2>::type f_;
|
typedef typename if_<C,F1,F2>::type f_;
|
||||||
typedef typename f_::type type;
|
typedef typename f_::type type;
|
||||||
|
#else
|
||||||
|
: if_<C,F1,F2>::type
|
||||||
|
{
|
||||||
#endif
|
#endif
|
||||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(3,eval_if,(C,F1,F2))
|
BOOST_MPL_AUX_LAMBDA_SUPPORT(3,eval_if,(C,F1,F2))
|
||||||
};
|
};
|
||||||
@@ -47,13 +51,16 @@ template<
|
|||||||
, typename F2
|
, typename F2
|
||||||
>
|
>
|
||||||
struct eval_if_c
|
struct eval_if_c
|
||||||
#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1300)
|
#if BOOST_WORKAROUND(BOOST_MSVC, <= 1300) \
|
||||||
: if_c<C,F1,F2>::type
|
|| ( BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, >= 0x0300) \
|
||||||
{
|
&& BOOST_WORKAROUND(BOOST_MPL_CFG_GCC, BOOST_TESTED_AT(0x0304)) \
|
||||||
#else
|
)
|
||||||
{
|
{
|
||||||
typedef typename if_c<C,F1,F2>::type f_;
|
typedef typename if_c<C,F1,F2>::type f_;
|
||||||
typedef typename f_::type type;
|
typedef typename f_::type type;
|
||||||
|
#else
|
||||||
|
: if_c<C,F1,F2>::type
|
||||||
|
{
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user