/usr/include/boost/fusion/algorithm/transformation
NameSizeModeActions
detail/-0755rm
clear.hpp9490644editdlrm
erase.hpp51030644editdlrm
erase_key.hpp11560644editdlrm
filter.hpp11360644editdlrm
filter_if.hpp10490644editdlrm
flatten.hpp12690644editdlrm
insert.hpp29010644editdlrm
insert_range.hpp24720644editdlrm
join.hpp11550644editdlrm
pop_back.hpp51670644editdlrm
pop_front.hpp14620644editdlrm
push_back.hpp16510644editdlrm
push_front.hpp16600644editdlrm
remove.hpp11810644editdlrm
remove_if.hpp11930644editdlrm
replace.hpp14600644editdlrm
replace_if.hpp15470644editdlrm
reverse.hpp11610644editdlrm
transform.hpp17580644editdlrm
zip.hpp42850644editdlrm
Edit: /usr/include/boost/fusion/algorithm/transformation/pop_back.hpp (5167B)
/*============================================================================= Copyright (c) 2001-2011 Joel de Guzman 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(FUSION_POP_BACK_09172005_1038) #define FUSION_POP_BACK_09172005_1038 #include #include #include #include #include #include #include #include #include #include namespace boost { namespace fusion { template struct pop_back_iterator : iterator_adapter< pop_back_iterator , Iterator_> { typedef iterator_adapter< pop_back_iterator , Iterator_> base_type; static bool const is_last = IsLast; BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED pop_back_iterator(Iterator_ const& iterator_base) : base_type(iterator_base) {} template struct make { typedef pop_back_iterator type; BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static type call(BaseIterator const& i) { return type(i); } }; template struct equal_to_helper : mpl::identity {}; template struct equal_to_helper : result_of::next< typename I::iterator_base_type> {}; template struct equal_to : result_of::equal_to< typename equal_to_helper::type , typename equal_to_helper::type > {}; template struct distance : mpl::minus< typename result_of::distance< typename First::iterator_base_type , typename Last::iterator_base_type >::type , mpl::int_<(Last::is_last?1:0)> >::type {}; template struct prior_impl { typedef typename Iterator::iterator_base_type base_type; typedef typename result_of::prior::type base_prior; typedef pop_back_iterator type; BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static type call(Iterator const& i) { return type(fusion::prior(i.iterator_base)); } }; template struct prior_impl { // If this is the last iterator, we'll have to double back typedef typename Iterator::iterator_base_type base_type; typedef typename result_of::prior< typename result_of::prior::type >::type base_prior; typedef pop_back_iterator type; BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static type call(Iterator const& i) { return type(fusion::prior( fusion::prior(i.iterator_base))); } }; template struct prior : prior_impl {}; }; namespace result_of { template struct pop_back { BOOST_MPL_ASSERT_NOT((result_of::empty)); typedef pop_back_iterator< typename begin::type, false> begin_type; typedef pop_back_iterator< typename end::type, true> end_type; typedef iterator_range type; }; } template BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED inline typename result_of::pop_back::type pop_back(Sequence const& seq) { typedef result_of::pop_back comp; typedef typename comp::begin_type begin_type; typedef typename comp::end_type end_type; typedef typename comp::type result; return result( begin_type(fusion::begin(seq)) , end_type(fusion::end(seq)) ); } }} #endif