10379784a3a8bd1276af4ce6c92c2dbff7a949d7
[senf.git] / boost / multi_index / detail / has_tag.hpp
1 /* Copyright 2003-2005 Joaquín M López Muñoz.
2  * Distributed under the Boost Software License, Version 1.0.
3  * (See accompanying file LICENSE_1_0.txt or copy at
4  * http://www.boost.org/LICENSE_1_0.txt)
5  *
6  * See http://www.boost.org/libs/multi_index for library home page.
7  */
8
9 #ifndef BOOST_MULTI_INDEX_DETAIL_HAS_TAG_HPP
10 #define BOOST_MULTI_INDEX_DETAIL_HAS_TAG_HPP
11
12 #if defined(_MSC_VER)&&(_MSC_VER>=1200)
13 #pragma once
14 #endif
15
16 #include <boost/config.hpp> /* keep it first to prevent nasty warns in MSVC */
17 #include <boost/mpl/contains.hpp>
18
19 namespace boost{
20
21 namespace multi_index{
22
23 namespace detail{
24
25 /* determines whether an index type has a given tag in its tag list */
26
27 template<typename Tag>
28 struct has_tag
29 {
30   template<typename Index>
31   struct apply:mpl::contains<BOOST_DEDUCED_TYPENAME Index::tag_list,Tag>
32   {
33   }; 
34 };
35
36 } /* namespace multi_index::detail */
37
38 } /* namespace multi_index */
39
40 } /* namespace boost */
41
42 #endif