]>
Commit | Line | Data |
---|---|---|
1 | /*============================================================================= | |
2 | Copyright (c) 2001-2011 Joel de Guzman | |
3 | ||
4 | Distributed under the Boost Software License, Version 1.0. (See accompanying | |
5 | file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
6 | ==============================================================================*/ | |
7 | #if !defined(FUSION_ERASE_10022005_1835) | |
8 | #define FUSION_ERASE_10022005_1835 | |
9 | ||
10 | #include <boost/fusion/support/config.hpp> | |
11 | #include <boost/mpl/erase.hpp> | |
12 | #include <boost/fusion/support/tag_of.hpp> | |
13 | #include <boost/fusion/algorithm/transformation/erase.hpp> | |
14 | #include <boost/fusion/sequence/convert.hpp> | |
15 | ||
16 | namespace boost { namespace mpl | |
17 | { | |
18 | template <typename Tag> | |
19 | struct erase_impl; | |
20 | ||
21 | template <> | |
22 | struct erase_impl<fusion::fusion_sequence_tag> | |
23 | { | |
24 | template <typename Sequence, typename First, typename Last> | |
25 | struct apply | |
26 | { | |
27 | typedef typename | |
28 | fusion::result_of::erase<Sequence, First, Last>::type | |
29 | result; | |
30 | ||
31 | typedef typename | |
32 | fusion::result_of::convert< | |
33 | typename fusion::detail::tag_of<Sequence>::type, result>::type | |
34 | type; | |
35 | }; | |
36 | }; | |
37 | }} | |
38 | ||
39 | #endif | |
40 |