From 48f8af3e73dc35d19a3d54ff70520eff64dabd09 Mon Sep 17 00:00:00 2001 From: Kohei Takahashi Date: Sat, 7 Jul 2018 08:17:26 +0900 Subject: [PATCH] filter_view: Removed redundant filter operation Iterator constructor always filters and determines right position. --- .../view/filter_view/detail/next_impl.hpp | 26 ++++--------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/include/boost/fusion/view/filter_view/detail/next_impl.hpp b/include/boost/fusion/view/filter_view/detail/next_impl.hpp index 4f174557..bd1404b9 100644 --- a/include/boost/fusion/view/filter_view/detail/next_impl.hpp +++ b/include/boost/fusion/view/filter_view/detail/next_impl.hpp @@ -1,5 +1,6 @@ /*============================================================================= Copyright (c) 2001-2011 Joel de Guzman + Copyright (c) 2018 Kohei Takahashi 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) @@ -8,14 +9,10 @@ #define FUSION_NEXT_IMPL_06052005_0900 #include -#include -#include +#include +#include #include #include -#include -#include -#include -#include namespace boost { namespace fusion { @@ -48,26 +45,13 @@ namespace boost { namespace fusion >::type next_type; - typedef typename - detail::static_find_if< - next_type - , last_type - , mpl::bind1< - typename mpl::lambda::type - , mpl::bind1,mpl::_1> - > - > - filter; - - typedef filter_iterator< - category, typename filter::type, last_type, pred_type> - type; + typedef filter_iterator type; BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED static type call(Iterator const& i) { - return type(filter::iter_call(i.first)); + return type(fusion::next(i.first)); } }; };