/Src/Dependencies/Boost/boost/proto/detail/pop_front.hpp
http://hadesmem.googlecode.com/ · C++ Header · 43 lines · 32 code · 4 blank · 7 comment · 0 complexity · d699d1311c35bd7c7f1f2755d9633c43 MD5 · raw file
- /*=============================================================================
- Copyright (c) 2001-2006 Joel de Guzman
- Copyright (c) 2008 Eric Niebler
- 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 BOOST_PROTO_DETAIL_FUSION_POP_FRONT_EAH_01_22_2008
- #define BOOST_PROTO_DETAIL_FUSION_POP_FRONT_EAH_01_22_2008
- #include <boost/spirit/fusion/sequence/range.hpp>
- #include <boost/spirit/fusion/sequence/begin.hpp>
- #include <boost/spirit/fusion/sequence/end.hpp>
- #include <boost/spirit/fusion/iterator/next.hpp>
- namespace boost { namespace fusion
- {
- namespace meta
- {
- template <typename Sequence>
- struct pop_front
- {
- typedef
- range<
- typename next<
- typename begin<Sequence>::type
- >::type
- , typename end<Sequence>::type
- >
- type;
- };
- }
- template <typename Sequence>
- inline typename meta::pop_front<Sequence const>::type
- pop_front(Sequence const& seq)
- {
- typedef typename meta::pop_front<Sequence const>::type result;
- return result(fusion::next(fusion::begin(seq)), fusion::end(seq));
- }
- }}
- #endif