summaryrefslogtreecommitdiff
path: root/boost/spirit/home/phoenix/statement/try_catch.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/spirit/home/phoenix/statement/try_catch.hpp')
-rw-r--r--boost/spirit/home/phoenix/statement/try_catch.hpp188
1 files changed, 0 insertions, 188 deletions
diff --git a/boost/spirit/home/phoenix/statement/try_catch.hpp b/boost/spirit/home/phoenix/statement/try_catch.hpp
deleted file mode 100644
index dccfd425ac..0000000000
--- a/boost/spirit/home/phoenix/statement/try_catch.hpp
+++ /dev/null
@@ -1,188 +0,0 @@
-/*=============================================================================
- Copyright (c) 2005-2007 Dan Marsden
- Copyright (c) 2005-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_TRY_CATCH_HPP
-#define PHOENIX_STATEMENT_TRY_CATCH_HPP
-
-#include <boost/spirit/home/phoenix/core/actor.hpp>
-#include <boost/spirit/home/phoenix/core/composite.hpp>
-
-#include <boost/fusion/include/push_back.hpp>
-#include <boost/fusion/include/as_vector.hpp>
-
-#include <boost/spirit/home/phoenix/statement/detail/catch_composite.hpp>
-#include <boost/spirit/home/phoenix/statement/detail/catch_eval.hpp>
-#include <boost/spirit/home/phoenix/statement/detail/catch_all_eval.hpp>
-
-#if defined(BOOST_MSVC)
-# pragma warning(push)
-# pragma warning(disable:4355)
-#endif
-
-namespace boost { namespace phoenix {
-
- template<typename Tuple> struct try_catch_composite;
-
- namespace meta
- {
- template<typename Composite, typename Actor>
- struct try_catch_composite_push_back
- {
- typedef typename Composite::base_type actor_tuple;
- typedef try_catch_composite<
- typename fusion::result_of::as_vector<
- typename fusion::result_of::push_back<
- actor_tuple, Actor>::type>::type> type;
- };
-
- template<typename Composite, typename Actor>
- struct catch_all_composite_push_back
- {
- typedef typename Composite::base_type actor_tuple;
-
- typedef composite<
- catch_all_eval,
- typename fusion::result_of::as_vector<
- typename fusion::result_of::push_back<
- actor_tuple, Actor>::type>::type> type;
- };
- }
-
- namespace detail
- {
- struct try_catch_composite_push_back
- {
- template<typename Composite, typename Actor>
- struct result
- : meta::try_catch_composite_push_back<Composite, Actor>
- {};
-
- template<typename Composite, typename Actor>
- typename result<Composite, Actor>::type
- operator()(
- const Composite& composite, const Actor& actor) const
- {
- typedef typename result<Composite, Actor>::type result;
- return result(
- fusion::as_vector(
- fusion::push_back(composite, actor)));
- }
- };
-
- struct catch_all_composite_push_back
- {
- template<typename Composite, typename Actor>
- struct result
- : meta::catch_all_composite_push_back<Composite, Actor>
- {};
-
- template<typename Composite, typename Actor>
- typename result<Composite, Actor>::type
- operator()(
- const Composite& composite, const Actor& actor) const
- {
- typedef typename result<Composite, Actor>::type result;
- return result(
- fusion::as_vector(
- fusion::push_back(composite, actor)));
- }
- };
-
- }
-
- detail::try_catch_composite_push_back const try_catch_composite_push_back
- = detail::try_catch_composite_push_back();
- detail::catch_all_composite_push_back const catch_all_composite_push_back
- = detail::catch_all_composite_push_back();
-
- template<typename Exception, typename SourceComposite>
- struct catch_gen
- {
- explicit catch_gen(
- const SourceComposite& sourceComposite)
- : mSourceComposite(sourceComposite) { }
-
- template<typename Actor>
- actor<typename meta::try_catch_composite_push_back<
- SourceComposite,
- detail::catch_composite<Exception, Actor> >::type>
- operator[](const Actor& actor) const
- {
- return try_catch_composite_push_back(
- mSourceComposite, detail::catch_composite<Exception, Actor>(actor));
- }
-
- const SourceComposite& mSourceComposite;
- };
-
- template<typename SourceComposite>
- struct catch_all_gen
- {
- explicit catch_all_gen(
- const SourceComposite& sourceComposite)
- : mSourceComposite(sourceComposite) { }
-
- template<typename Actor>
- actor<typename meta::catch_all_composite_push_back<SourceComposite, Actor>::type>
- operator[](const Actor& actor) const
- {
- return catch_all_composite_push_back(
- mSourceComposite, actor);
- }
-
- const SourceComposite& mSourceComposite;
- };
-
- template<typename Tuple>
- struct try_catch_composite
- : composite<catch_eval, Tuple>
- {
- explicit try_catch_composite(
- const Tuple& t)
- :
- composite<catch_eval, Tuple>(t),
- catch_all(*this) { }
-
- try_catch_composite(
- const try_catch_composite& rhs)
- : composite<catch_eval, Tuple>(rhs),
- catch_all(*this) { }
-
- template<typename Exception>
- catch_gen<Exception, try_catch_composite> catch_() const
- {
- return catch_gen<Exception, try_catch_composite>(
- *this);
- }
-
- const catch_all_gen<try_catch_composite> catch_all;
-
- private:
- try_catch_composite& operator=(const try_catch_composite&);
- };
-
- struct try_gen
- {
- template<typename Try>
- try_catch_composite<fusion::vector<Try> > operator[](
- const Try& try_) const
- {
- typedef fusion::vector<Try> tuple_type;
- return try_catch_composite<tuple_type>(
- tuple_type(try_));
- }
- };
-
- try_gen const try_ = try_gen();
-}}
-
-#if defined(BOOST_MSVC)
-# pragma warning(pop)
-#endif
-
-#endif