diff options
Diffstat (limited to '3rdParty/Boost/src/boost/spirit/home/phoenix/bind/bind_member_variable.hpp')
-rw-r--r-- | 3rdParty/Boost/src/boost/spirit/home/phoenix/bind/bind_member_variable.hpp | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/3rdParty/Boost/src/boost/spirit/home/phoenix/bind/bind_member_variable.hpp b/3rdParty/Boost/src/boost/spirit/home/phoenix/bind/bind_member_variable.hpp deleted file mode 100644 index 3d11351..0000000 --- a/3rdParty/Boost/src/boost/spirit/home/phoenix/bind/bind_member_variable.hpp +++ /dev/null @@ -1,105 +0,0 @@ -/*============================================================================= - Copyright (c) 2001-2007 Joel de Guzman - - Distributed under the Boost Software License, Version 1.0. (See accompanying - file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -==============================================================================*/ -#ifndef PHOENIX_BIND_BIND_MEMBER_VARIABLE_HPP -#define PHOENIX_BIND_BIND_MEMBER_VARIABLE_HPP - -#include <boost/mpl/if.hpp> -#include <boost/type_traits/is_const.hpp> -#include <boost/type_traits/remove_pointer.hpp> -#include <boost/type_traits/remove_reference.hpp> - -#include <boost/spirit/home/phoenix/core/actor.hpp> -#include <boost/spirit/home/phoenix/core/compose.hpp> -#include <boost/spirit/home/phoenix/core/reference.hpp> -#include <boost/spirit/home/phoenix/core/detail/function_eval.hpp> -#include <boost/mpl/if.hpp> -#include <boost/type_traits/is_const.hpp> -#include <boost/type_traits/remove_pointer.hpp> -#include <boost/type_traits/remove_reference.hpp> - -namespace boost { namespace phoenix -{ - namespace detail - { - template <typename RT, typename MP> - struct member_variable - { - template <typename Class> - struct result - { - typedef typename boost::mpl::if_< - boost::is_const< - typename boost::remove_pointer< - typename boost::remove_reference<Class>::type - >::type - > - , const RT& - , RT& - >::type type; - }; - - member_variable(MP mp) - : mp(mp) {} - - template <typename Class> - RT& operator()(Class& obj) const - { - return obj.*mp; - } - - template <typename Class> - RT& operator()(Class* obj) const - { - return obj->*mp; - } - - template <typename Class> - RT const& operator()(Class const& obj) const - { - return obj.*mp; - } - - template <typename Class> - RT const& operator()(Class const* obj) const - { - return obj->*mp; - } - - MP mp; - }; - } - - template <typename RT, typename ClassT, typename ClassA> - inline actor< - typename as_composite< - detail::function_eval<1> - , detail::member_variable<RT, RT ClassT::*> - , ClassA - >::type> - bind(RT ClassT::*mp, ClassA const& obj) - { - typedef detail::member_variable<RT, RT ClassT::*> mp_type; - return compose<detail::function_eval<1> >(mp_type(mp), obj); - } - - template <typename RT, typename ClassT> - inline actor< - typename as_composite< - detail::function_eval<1> - , detail::member_variable<RT, RT ClassT::*> - , actor<reference<ClassT> > - >::type> - bind(RT ClassT::*mp, ClassT& obj) - { - typedef detail::member_variable<RT, RT ClassT::*> mp_type; - return compose<detail::function_eval<1> >( - mp_type(mp) - , actor<reference<ClassT> >(reference<ClassT>(obj))); - } -}} - -#endif |