Ticket #4832: lambda.patch

File lambda.patch, 1.2 KB (added by Alexander Bessonov <alexbav@…>, 12 years ago)

patch for boost/utility/result_of.hpp

  • result_of.hpp

     
    7575template<typename F>
    7676struct is_function_with_no_args<F(void)> : mpl::true_ {};
    7777
    78 template<typename F, typename FArgs>
     78template<typename F, typename FArgs,typename Unused=void>
    7979struct result_of_nested_result : F::template result<FArgs>
    8080{};
    8181
     82#if !defined(BOOST_NO_LAMBDAS)
     83#if _MSC_FULL_VER>=160030319
     84template<class T>
     85struct FP
     86{
     87        typedef decltype(&T::operator()) type;
     88};
     89
    8290template<typename F, typename FArgs>
     91struct result_of_nested_result<F,FArgs,
     92        typename enable_if<
     93                typename is_member_function_pointer<typename FP<F>::type>::type>::type>
     94{
     95        template<class T>
     96        struct extractor;
     97
     98        template<class R,class T,class A>
     99        struct extractor<R (T::*)(A) const>
     100        {
     101                typedef R type;
     102        };
     103       
     104        typedef typename extractor<typename FP<F>::type>::type type;
     105};
     106#endif // _MSC_FULL_VER>=0x160030319
     107#endif  // !BOOST_NO_LAMBDAS
     108
     109template<typename F, typename FArgs>
    83110struct tr1_result_of_impl<F, FArgs, false>
    84111  : mpl::if_<is_function_with_no_args<FArgs>,
    85112             result_of_void_impl<F>,