summaryrefslogtreecommitdiff
path: root/boost/spirit/home/phoenix/statement/if.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/spirit/home/phoenix/statement/if.hpp')
-rw-r--r--boost/spirit/home/phoenix/statement/if.hpp130
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