Ticket #4832: lambda.patch
File lambda.patch, 1.2 KB (added by , 12 years ago) |
---|
-
result_of.hpp
75 75 template<typename F> 76 76 struct is_function_with_no_args<F(void)> : mpl::true_ {}; 77 77 78 template<typename F, typename FArgs >78 template<typename F, typename FArgs,typename Unused=void> 79 79 struct result_of_nested_result : F::template result<FArgs> 80 80 {}; 81 81 82 #if !defined(BOOST_NO_LAMBDAS) 83 #if _MSC_FULL_VER>=160030319 84 template<class T> 85 struct FP 86 { 87 typedef decltype(&T::operator()) type; 88 }; 89 82 90 template<typename F, typename FArgs> 91 struct 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 109 template<typename F, typename FArgs> 83 110 struct tr1_result_of_impl<F, FArgs, false> 84 111 : mpl::if_<is_function_with_no_args<FArgs>, 85 112 result_of_void_impl<F>,