tinympl  0.2
mini MPL library for C++11
remove_if.hpp
1 // Copyright (C) 2013, Ennio Barbaro.
2 //
3 // Use, modification, and distribution is subject to the Boost Software
4 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
5 // http://www.boost.org/LICENSE_1_0.txt)
6 //
7 // See http://sbabbi.github.io/tinympl for documentation.
8 //
9 // You are welcome to contact the author at:
10 // enniobarbaro@gmail.com
11 //
12 
13 #ifndef TINYMPL_VARIADIC_REMOVE_IF_HPP
14 #define TINYMPL_VARIADIC_REMOVE_IF_HPP
15 
16 #include <tinympl/variadic/copy_if.hpp>
17 #include <tinympl/bind.hpp>
18 #include <tinympl/logical_not.hpp>
19 
20 namespace tinympl {
21 namespace variadic {
22 
36 template<template<class ... T> class F,
37  template<class ...> class Out,
38  class ... Args>
39 struct remove_if :
40  copy_if< bind<logical_not, bind<F, arg1> >::template eval, Out, Args...> {};
41 
42 } // namespace variadic
43 } // namespace tinympl
44 
45 #endif // TINYMPL_VARIADIC_REMOVE_IF_HPP
Remove the elements from the input sequence if they satisfy a given predicate.
Definition: remove_if.hpp:39
Copy the elements of a given input sequence which satisfy a given predicate - the ordering is preserv...
Definition: copy_if.hpp:36