/*============================================================================= Copyright (c) 2003 Joel de Guzman Copyright (c) 2004 Peder Holt Use, modification and distribution is subject to 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) ==============================================================================*/ #if !defined(FUSION_ITERATOR_PRIOR_HPP) #define FUSION_ITERATOR_PRIOR_HPP #include #include namespace boost { namespace fusion { namespace meta { template struct prior_impl { template struct apply {}; }; template struct prior { typedef as_fusion_iterator converter; typedef typename converter::type iter; typedef typename prior_impl:: template apply::type type; }; } template inline typename meta::prior::type prior(Iterator const& i) { typedef as_fusion_iterator converter; typedef typename converter::type iter; return meta::prior_impl:: template apply::call(converter::convert(i)); } }} #endif