Add SCons configure checks
[senf.git] / boost_ext / boost / bimap / relation / pair_layout.hpp
1 // Boost.Bimap
2 //
3 // Copyright (c) 2006-2007 Matias Capeletto
4 //
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)
8
9 /// \file relation/pair_layout.hpp
10 /// \brief Tags for pair layouts
11
12 #ifndef BOOST_BIMAP_RELATION_PAIR_LAYOUT_HPP
13 #define BOOST_BIMAP_RELATION_PAIR_LAYOUT_HPP
14
15 #if defined(_MSC_VER) && (_MSC_VER>=1200)
16 #pragma once
17 #endif
18
19 #include <boost/config.hpp>
20
21 namespace boost {
22 namespace bimaps {
23 namespace relation {
24
25 //@{
26
27 /// \brief Tag for normal layout. ( A,B -> A,B )
28
29 struct normal_layout {};
30
31 /// \brief Tag for mirror layout. ( A,B -> B,A )
32
33 struct mirror_layout {};
34
35 //@}
36
37 /** \struct boost::bimaps::relation::inverse_layout
38 \brief Metafunction to obtain the inverse of a layout.
39
40 \code
41 template< class Layout >
42 struct inverse_layout
43 {
44     typedef {InverseLayout} type;
45 };
46 \endcode
47
48 See also normal_layout, mirror_layout.
49                                                                     **/
50
51 #ifndef BOOST_BIMAP_DOXYGEN_WILL_NOT_PROCESS_THE_FOLLOWING_LINES
52
53 template< class Layout >
54 struct inverse_layout
55 {
56     typedef normal_layout type;
57 };
58
59 template<>
60 struct inverse_layout< normal_layout >
61 {
62     typedef mirror_layout type;
63 };
64
65 #endif // BOOST_BIMAP_DOXYGEN_WILL_NOT_PROCESS_THE_FOLLOWING_LINES
66
67 } // namespace relation
68 } // namespace bimaps
69 } // namespace boost
70
71 #endif // BOOST_BIMAP_RELATION_DETAIL_PAIR_LAYOUT_HPP
72