• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef BOOST_METAPARSE_V1_IF__HPP
2 #define BOOST_METAPARSE_V1_IF__HPP
3 
4 // Copyright Abel Sinkovics (abel@sinkovics.hu)  2009 - 2010.
5 // Distributed under the Boost Software License, Version 1.0.
6 //    (See accompanying file LICENSE_1_0.txt or copy at
7 //          http://www.boost.org/LICENSE_1_0.txt)
8 
9 #include <boost/metaparse/v1/accept.hpp>
10 #include <boost/metaparse/v1/is_error.hpp>
11 
12 #include <boost/mpl/if.hpp>
13 
14 namespace boost
15 {
16   namespace metaparse
17   {
18     namespace v1
19     {
20       template <class P, class T, class F>
21       struct if_
22       {
23         typedef if_ type;
24 
25         template <class S, class Pos>
26         struct apply :
27           accept<
28             typename boost::mpl::if_<
29               is_error<typename P::template apply<S, Pos> >,
30               F,
31               T
32             >::type,
33             S,
34             Pos
35           >
36         {};
37       };
38     }
39   }
40 }
41 
42 #endif
43 
44