/*============================================================================= Copyright (c) 2011 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) ==============================================================================*/ #if !defined(BOOST_FUSION_ITERATOR_RANGE_IS_SEGMENTED_HPP_INCLUDED) #define BOOST_FUSION_ITERATOR_RANGE_IS_SEGMENTED_HPP_INCLUDED #include #include namespace boost { namespace fusion { struct iterator_range_tag; template struct segmented_iterator; namespace extension { template struct is_segmented_impl; // An iterator_range of segmented_iterators is segmented template <> struct is_segmented_impl { private: template struct is_segmented_iterator : mpl::false_ {}; template struct is_segmented_iterator : is_segmented_iterator {}; template struct is_segmented_iterator : is_segmented_iterator {}; template struct is_segmented_iterator > : mpl::true_ {}; public: template struct apply : is_segmented_iterator { BOOST_MPL_ASSERT_RELATION( is_segmented_iterator::value , == , is_segmented_iterator::value); }; }; } }} #endif