diff options
Diffstat (limited to 'boost/metaparse/v1/middle_of.hpp')
-rw-r--r-- | boost/metaparse/v1/middle_of.hpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/boost/metaparse/v1/middle_of.hpp b/boost/metaparse/v1/middle_of.hpp new file mode 100644 index 0000000000..3526153af8 --- /dev/null +++ b/boost/metaparse/v1/middle_of.hpp @@ -0,0 +1,48 @@ +#ifndef BOOST_METAPARSE_V1_KEEP_MIDDLE_HPP +#define BOOST_METAPARSE_V1_KEEP_MIDDLE_HPP + +// Copyright Abel Sinkovics (abel@sinkovics.hu) 2009 - 2010. +// 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) + +#include <boost/metaparse/v1/nth_of.hpp> +#include <boost/metaparse/v1/transform_error_message.hpp> +#include <boost/metaparse/v1/get_col.hpp> +#include <boost/metaparse/v1/get_line.hpp> + +#include <boost/metaparse/v1/error/unpaired.hpp> + +namespace boost +{ + namespace metaparse + { + namespace v1 + { + template <class P1, class P2, class P3> + struct middle_of + { + typedef middle_of type; + + template <class S, class Pos> + struct apply : + nth_of_c< + 1, + P1, + P2, + transform_error_message< + P3, + error::unpaired< + get_line<Pos>::type::value, + get_col<Pos>::type::value + > + > + >::template apply<S, Pos> + {}; + }; + } + } +} + +#endif + |