diff options
Diffstat (limited to '3rdParty/Boost/src/boost/lambda/detail')
-rw-r--r-- | 3rdParty/Boost/src/boost/lambda/detail/lambda_functors.hpp | 33 | ||||
-rw-r--r-- | 3rdParty/Boost/src/boost/lambda/detail/ret.hpp | 2 |
2 files changed, 34 insertions, 1 deletions
diff --git a/3rdParty/Boost/src/boost/lambda/detail/lambda_functors.hpp b/3rdParty/Boost/src/boost/lambda/detail/lambda_functors.hpp index 9b1b082..9ce29ad 100644 --- a/3rdParty/Boost/src/boost/lambda/detail/lambda_functors.hpp +++ b/3rdParty/Boost/src/boost/lambda/detail/lambda_functors.hpp @@ -9,18 +9,19 @@ // For more information, see http://www.boost.org // ------------------------------------------------ #ifndef BOOST_LAMBDA_LAMBDA_FUNCTORS_HPP #define BOOST_LAMBDA_LAMBDA_FUNCTORS_HPP #include <boost/config.hpp> #include <boost/detail/workaround.hpp> +#include <boost/utility/result_of.hpp> #if BOOST_WORKAROUND(BOOST_MSVC, == 1310) #include <boost/mpl/or.hpp> #include <boost/utility/enable_if.hpp> #include <boost/type_traits/is_array.hpp> #define BOOST_LAMBDA_DISABLE_IF_ARRAY1(A1, R1)\ typename lazy_disable_if<is_array<A1>, typename R1 >::type @@ -291,18 +292,50 @@ public: }; #if BOOST_WORKAROUND(BOOST_MSVC, >= 1400) #pragma warning(pop) #endif } // namespace lambda } // namespace boost +namespace boost { + +#if !defined(BOOST_RESULT_OF_USE_DECLTYPE) || defined(BOOST_NO_DECLTYPE) + +template<class T> +struct result_of<boost::lambda::lambda_functor<T>()> +{ + typedef typename boost::lambda::lambda_functor<T>::nullary_return_type type; +}; + +template<class T> +struct result_of<const boost::lambda::lambda_functor<T>()> +{ + typedef typename boost::lambda::lambda_functor<T>::nullary_return_type type; +}; + +#endif + +template<class T> +struct tr1_result_of<boost::lambda::lambda_functor<T>()> +{ + typedef typename boost::lambda::lambda_functor<T>::nullary_return_type type; +}; + +template<class T> +struct tr1_result_of<const boost::lambda::lambda_functor<T>()> +{ + typedef typename boost::lambda::lambda_functor<T>::nullary_return_type type; +}; + +} + // is_placeholder #include <boost/is_placeholder.hpp> namespace boost { template<> struct is_placeholder< lambda::lambda_functor< lambda::placeholder<lambda::FIRST> > > { diff --git a/3rdParty/Boost/src/boost/lambda/detail/ret.hpp b/3rdParty/Boost/src/boost/lambda/detail/ret.hpp index fbd8b3a..96f5fc1 100644 --- a/3rdParty/Boost/src/boost/lambda/detail/ret.hpp +++ b/3rdParty/Boost/src/boost/lambda/detail/ret.hpp @@ -278,19 +278,19 @@ return // for non-lambda functors, make_void does nothing // (the argument gets evaluated immediately) template<class Arg1> inline const lambda_functor< lambda_functor_base<do_nothing_action, null_type> > -make_void(const Arg1& a1) { +make_void(const Arg1&) { return lambda_functor_base<do_nothing_action, null_type>(); } // std_functor ----------------------------------------------------- // The STL uses the result_type typedef as the convention to let binders know // the return type of a function object. // LL uses the sig template. |