diff options
Diffstat (limited to 'boost/spirit/home/phoenix/statement/if.hpp')
-rw-r--r-- | boost/spirit/home/phoenix/statement/if.hpp | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/boost/spirit/home/phoenix/statement/if.hpp b/boost/spirit/home/phoenix/statement/if.hpp deleted file mode 100644 index 378fec0ca1..0000000000 --- a/boost/spirit/home/phoenix/statement/if.hpp +++ /dev/null @@ -1,130 +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_STATEMENT_IF_HPP -#define PHOENIX_STATEMENT_IF_HPP - -#include <boost/spirit/home/phoenix/core/composite.hpp> -#include <boost/spirit/home/phoenix/core/as_actor.hpp> -#include <boost/spirit/home/phoenix/core/compose.hpp> - -#if defined(BOOST_MSVC) -# pragma warning(push) -# pragma warning(disable:4355) -#endif - -namespace boost { namespace phoenix -{ - struct if_else_eval - { - template <typename Env, typename Cond, typename Then, typename Else> - struct result - { - typedef void type; - }; - - template < - typename RT, typename Env - , typename Cond, typename Then, typename Else> - static void - eval(Env const& env, Cond& cond, Then& then, Else& else_) - { - if (cond.eval(env)) - then.eval(env); - else - else_.eval(env); - } - }; - - struct if_eval - { - template <typename Env, typename Cond, typename Then> - struct result - { - typedef void type; - }; - - template <typename RT, typename Env, typename Cond, typename Then> - static void - eval(Env const& env, Cond& cond, Then& then) - { - if (cond.eval(env)) - then.eval(env); - } - }; - - template <typename Cond, typename Then> - struct if_composite; - - template <typename Cond, typename Then> - struct else_gen - { - else_gen(if_composite<Cond, Then> const& source) - : source(source) {} - - template <typename Else> - actor<typename as_composite<if_else_eval, Cond, Then, Else>::type> - operator[](Else const& else_) const - { - return compose<if_else_eval>( - fusion::at_c<0>(source) // cond - , fusion::at_c<1>(source) // then - , else_ // else - ); - } - - if_composite<Cond, Then> const& source; - - private: - // silence MSVC warning C4512: assignment operator could not be generated - else_gen& operator= (else_gen const&); - }; - - template <typename Cond, typename Then> - struct if_composite : composite<if_eval, fusion::vector<Cond, Then> > - { - if_composite(Cond const& cond, Then const& then) - : composite<if_eval, fusion::vector<Cond, Then> >(cond, then) - , else_(*this) {} - - else_gen<Cond, Then> else_; - - private: - // silence MSVC warning C4512: assignment operator could not be generated - if_composite& operator= (if_composite const&); - }; - - template <typename Cond> - struct if_gen - { - if_gen(Cond const& cond) - : cond(cond) {} - - template <typename Then> - actor<if_composite<Cond, typename as_actor<Then>::type> > - operator[](Then const& then) const - { - return actor<if_composite<Cond, typename as_actor<Then>::type> >( - cond, as_actor<Then>::convert(then)); - } - - Cond cond; - }; - - template <typename Cond> - inline if_gen<typename as_actor<Cond>::type> - if_(Cond const& cond) - { - return if_gen<typename as_actor<Cond>::type>( - as_actor<Cond>::convert(cond)); - } -}} - -#if defined(BOOST_MSVC) -# pragma warning(pop) -#endif - -#endif |