]> AND Private Git Repository - canny.git/blob - stc/exp/ml_stc_linux_make_v1.0/include/boost/mpl/find_if.hpp
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
80953ba2acf741ef173559dc4dfffadf5d565f87
[canny.git] / stc / exp / ml_stc_linux_make_v1.0 / include / boost / mpl / find_if.hpp
1 \r
2 #ifndef BOOST_MPL_FIND_IF_HPP_INCLUDED\r
3 #define BOOST_MPL_FIND_IF_HPP_INCLUDED\r
4 \r
5 // Copyright Aleksey Gurtovoy 2000-2004\r
6 //\r
7 // Distributed under the Boost Software License, Version 1.0. \r
8 // (See accompanying file LICENSE_1_0.txt or copy at \r
9 // http://www.boost.org/LICENSE_1_0.txt)\r
10 //\r
11 // See http://www.boost.org/libs/mpl for documentation.\r
12 \r
13 // $Id: find_if.hpp 49274 2008-10-11 07:22:05Z agurtovoy $\r
14 // $Date: 2008-10-11 03:22:05 -0400 (Sat, 11 Oct 2008) $\r
15 // $Revision: 49274 $\r
16 \r
17 #include <boost/mpl/aux_/find_if_pred.hpp>\r
18 #include <boost/mpl/arg.hpp>\r
19 #include <boost/mpl/iter_fold_if.hpp>\r
20 #include <boost/mpl/aux_/common_name_wknd.hpp>\r
21 #include <boost/mpl/aux_/na_spec.hpp>\r
22 #include <boost/mpl/aux_/lambda_support.hpp>\r
23 \r
24 namespace boost { namespace mpl {\r
25 \r
26 BOOST_MPL_AUX_COMMON_NAME_WKND(find_if)\r
27 \r
28 template<\r
29       typename BOOST_MPL_AUX_NA_PARAM(Sequence)\r
30     , typename BOOST_MPL_AUX_NA_PARAM(Predicate)\r
31     >\r
32 struct find_if\r
33 {\r
34     typedef typename iter_fold_if<\r
35           Sequence\r
36         , void\r
37         , mpl::arg<1> // ignore\r
38         , protect< aux::find_if_pred<Predicate> >\r
39         >::type result_;\r
40 \r
41     typedef typename second<result_>::type type;\r
42 \r
43     BOOST_MPL_AUX_LAMBDA_SUPPORT(2,find_if,(Sequence,Predicate))\r
44 };\r
45 \r
46 BOOST_MPL_AUX_NA_SPEC(2,find_if)\r
47 \r
48 }}\r
49 \r
50 #endif // BOOST_MPL_FIND_IF_HPP_INCLUDED\r