mirror of
https://github.com/boostorg/fusion.git
synced 2025-07-25 18:17:29 +02:00
filter_view: Removed redundant filter operation
Iterator constructor always filters and determines right position.
This commit is contained in:
@ -1,5 +1,6 @@
|
|||||||
/*=============================================================================
|
/*=============================================================================
|
||||||
Copyright (c) 2001-2011 Joel de Guzman
|
Copyright (c) 2001-2011 Joel de Guzman
|
||||||
|
Copyright (c) 2018 Kohei Takahashi
|
||||||
|
|
||||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
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)
|
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
|
#define FUSION_NEXT_IMPL_06052005_0900
|
||||||
|
|
||||||
#include <boost/fusion/support/config.hpp>
|
#include <boost/fusion/support/config.hpp>
|
||||||
#include <boost/fusion/algorithm/query/detail/find_if.hpp>
|
#include <boost/fusion/iterator/next.hpp>
|
||||||
#include <boost/fusion/iterator/value_of.hpp>
|
#include <boost/fusion/iterator/equal_to.hpp>
|
||||||
#include <boost/mpl/eval_if.hpp>
|
#include <boost/mpl/eval_if.hpp>
|
||||||
#include <boost/mpl/identity.hpp>
|
#include <boost/mpl/identity.hpp>
|
||||||
#include <boost/mpl/lambda.hpp>
|
|
||||||
#include <boost/mpl/quote.hpp>
|
|
||||||
#include <boost/mpl/bind.hpp>
|
|
||||||
#include <boost/mpl/placeholders.hpp>
|
|
||||||
|
|
||||||
namespace boost { namespace fusion
|
namespace boost { namespace fusion
|
||||||
{
|
{
|
||||||
@ -48,26 +45,13 @@ namespace boost { namespace fusion
|
|||||||
>::type
|
>::type
|
||||||
next_type;
|
next_type;
|
||||||
|
|
||||||
typedef typename
|
typedef filter_iterator<category, next_type, last_type, pred_type> type;
|
||||||
detail::static_find_if<
|
|
||||||
next_type
|
|
||||||
, last_type
|
|
||||||
, mpl::bind1<
|
|
||||||
typename mpl::lambda<pred_type>::type
|
|
||||||
, mpl::bind1<mpl::quote1<result_of::value_of>,mpl::_1>
|
|
||||||
>
|
|
||||||
>
|
|
||||||
filter;
|
|
||||||
|
|
||||||
typedef filter_iterator<
|
|
||||||
category, typename filter::type, last_type, pred_type>
|
|
||||||
type;
|
|
||||||
|
|
||||||
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
|
||||||
static type
|
static type
|
||||||
call(Iterator const& i)
|
call(Iterator const& i)
|
||||||
{
|
{
|
||||||
return type(filter::iter_call(i.first));
|
return type(fusion::next(i.first));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user