/*============================================================================= Copyright (c) 2001-2011 Joel de Guzman 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(FUSION_FIND_IF_05052005_1108) #define FUSION_FIND_IF_05052005_1108 #include #include #include #include #include #include #include #include #include #include #include #include namespace boost { namespace fusion { namespace result_of { template struct find_if : mpl::if_< traits::is_segmented , detail::result_of_segmented_find_if , detail::result_of_find_if< Sequence, mpl::bind1< typename mpl::lambda::type , mpl::bind1, mpl::_1> > > >::type {}; } template BOOST_FUSION_GPU_ENABLED inline typename lazy_disable_if< is_const , result_of::find_if >::type find_if(Sequence& seq) { typedef typename result_of::find_if::filter filter; return filter::call(seq); } template BOOST_FUSION_GPU_ENABLED inline typename result_of::find_if::type const find_if(Sequence const& seq) { typedef typename result_of::find_if::filter filter; return filter::call(seq); } }} #endif