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 relation/support/value_type_of.hpp
10 /// \brief value_type_of<tag,relation> metafunction
12 #ifndef BOOST_BIMAP_RELATION_SUPPORT_VALUE_TYPE_OF_HPP
13 #define BOOST_BIMAP_RELATION_SUPPORT_VALUE_TYPE_OF_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::relation::support::value_type_of
25 \brief Metafunction to obtain the value type of one of the sides.
29 template< class Tag, class Relation >
32 typedef typename Relation::{side}_type type;
37 See also member_at, get().
38 \ingroup relation_group
46 // Metafunction value_type_of
49 template< class Tag, class Relation >
52 typedef -unspecified- type;
57 BOOST_BIMAP_SYMMETRIC_METADATA_ACCESS_BUILDER
64 // Add support for info tags to value_type_of
66 template< class Tag, class SymmetricType >
70 BOOST_DEDUCED_TYPENAME enable_if
72 ::boost::bimaps::relation::support::is_tag_of_member_at_info
81 typedef BOOST_DEDUCED_TYPENAME SymmetricType::info_type type;
84 } // namespace support
85 } // namespace relation
90 #endif // BOOST_BIMAP_RELATION_SUPPORT_VALUE_TYPE_OF_HPP