Chris@16: // Boost.Bimap Chris@16: // Chris@16: // Copyright (c) 2006-2007 Matias Capeletto Chris@16: // Chris@16: // Distributed under the Boost Software License, Version 1.0. Chris@16: // (See accompanying file LICENSE_1_0.txt or copy at Chris@16: // http://www.boost.org/LICENSE_1_0.txt) Chris@16: Chris@16: /// \file relation/pair_layout.hpp Chris@16: /// \brief Tags for pair layouts Chris@16: Chris@16: #ifndef BOOST_BIMAP_RELATION_PAIR_LAYOUT_HPP Chris@16: #define BOOST_BIMAP_RELATION_PAIR_LAYOUT_HPP Chris@16: Chris@101: #if defined(_MSC_VER) Chris@16: #pragma once Chris@16: #endif Chris@16: Chris@16: #include Chris@16: Chris@16: namespace boost { Chris@16: namespace bimaps { Chris@16: namespace relation { Chris@16: Chris@16: //@{ Chris@16: Chris@16: /// \brief Tag for normal layout. ( A,B -> A,B ) Chris@16: Chris@16: struct normal_layout {}; Chris@16: Chris@16: /// \brief Tag for mirror layout. ( A,B -> B,A ) Chris@16: Chris@16: struct mirror_layout {}; Chris@16: Chris@16: //@} Chris@16: Chris@16: /** \struct boost::bimaps::relation::inverse_layout Chris@16: \brief Metafunction to obtain the inverse of a layout. Chris@16: Chris@16: \code Chris@16: template< class Layout > Chris@16: struct inverse_layout Chris@16: { Chris@16: typedef {InverseLayout} type; Chris@16: }; Chris@16: \endcode Chris@16: Chris@16: See also normal_layout, mirror_layout. Chris@16: **/ Chris@16: Chris@16: #ifndef BOOST_BIMAP_DOXYGEN_WILL_NOT_PROCESS_THE_FOLLOWING_LINES Chris@16: Chris@16: template< class Layout > Chris@16: struct inverse_layout Chris@16: { Chris@16: typedef normal_layout type; Chris@16: }; Chris@16: Chris@16: template<> Chris@16: struct inverse_layout< normal_layout > Chris@16: { Chris@16: typedef mirror_layout type; Chris@16: }; Chris@16: Chris@16: #endif // BOOST_BIMAP_DOXYGEN_WILL_NOT_PROCESS_THE_FOLLOWING_LINES Chris@16: Chris@16: } // namespace relation Chris@16: } // namespace bimaps Chris@16: } // namespace boost Chris@16: Chris@16: #endif // BOOST_BIMAP_RELATION_DETAIL_PAIR_LAYOUT_HPP Chris@16: