Ticket #4526: pathfile2.patch

File pathfile2.patch, 1.4 KB (added by Stefan van Kessel <van_kessel@…>, 12 years ago)

Removed unncessary decltype. Now works at least on msvc10 and msvc9

  • requires.hpp

     
    5050# define BOOST_CONCEPT_REQUIRES(models, result)                                    \
    5151    typename ::boost::parameter::aux::unaryfunptr_arg_type<void(*)result>::type
    5252
     53#elif BOOST_WORKAROUND(BOOST_MSVC, <= 1600) && BOOST_WORKAROUND(BOOST_MSVC, >= 1400)
     54template <typename T1, typename T2>
     55struct requires_msvc_workaround
     56{
     57    typedef typename T2::type type;
     58};
     59
     60#define BOOST_CONCEPT_STRIP_PARENS(x) x
     61#define BOOST_CONCEPT_TEST_SINGLE_REQUIREMENT(x) ::boost::_requires_<void(*) (x) >
     62#define BOOST_CONCEPT_CLOSE_TEMPLATE(r, data, elem) >
     63#define BOOST_CONCEPT_OPEN_TEMPLATE(r, data, i, elem) ::boost::requires_msvc_workaround< BOOST_CONCEPT_TEST_SINGLE_REQUIREMENT elem ,
     64
     65#define BOOST_CONCEPT_REQUIRES(models , result)                                 \
     66    typename                                                                    \
     67    BOOST_PP_SEQ_FOR_EACH_I(BOOST_CONCEPT_OPEN_TEMPLATE, 0, models)             \
     68        ::boost::parameter::aux::unaryfunptr_arg_type<void(*) result>          \
     69        BOOST_PP_SEQ_FOR_EACH(BOOST_CONCEPT_CLOSE_TEMPLATE, 0, models)          \
     70        ::type
     71
    5372#elif BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
    5473
    5574// Same thing as below without the initial typename