3 // Copyright (c) 2006-2007 Matias Capeletto
5 // Distributed under the Boost Software License, Version 1.0.
6 // (See accompanying file LICENSE_1_0.txt or copy at
7 // http://www.boost.org/LICENSE_1_0.txt)
9 /// \file support/data_type_by.hpp
10 /// \brief Metafunction to access the data types of a bimap
12 #ifndef BOOST_BIMAP_SUPPORT_DATA_TYPE_BY_HPP
13 #define BOOST_BIMAP_SUPPORT_DATA_TYPE_BY_HPP
15 #if defined(_MSC_VER) && (_MSC_VER>=1200)
19 #include <boost/config.hpp>
21 #include <boost/bimap/relation/detail/metadata_access_builder.hpp>
23 /** \struct boost::bimaps::support::data_type_by
25 \brief Metafunction to obtain the data type of one of the sides in a bimap
27 The tag parameter can be either a user defined tag or \c member_at::{side}.
28 This is the actual data type stored in the bimap.
31 template< class Tag, class Bimap >
34 typedef typename Bimap::{side}_data_type type;
45 is_same< data_type_by< member_at::left, bimap<A,B> >::type, A >::value
58 // Implementation of data type of metafunction
60 BOOST_BIMAP_SYMMETRIC_METADATA_ACCESS_BUILDER
67 } // namespace support
72 #endif // BOOST_BIMAP_SUPPORT_DATA_TYPE_BY_HPP