欢迎来到虫虫下载站 | 资源下载 资源专辑 关于我们
虫虫下载站

map_by.hpp

Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
HPP
字号:
// Boost.Bimap//// Copyright (c) 2006-2007 Matias Capeletto//// Distributed under the Boost Software License, Version 1.0.// (See accompanying file LICENSE_1_0.txt or copy at// http://www.boost.org/LICENSE_1_0.txt)/// \file support/map_by.hpp/// \brief map_by<tag>(b) function#ifndef BOOST_BIMAP_SUPPORT_MAP_BY_HPP#define BOOST_BIMAP_SUPPORT_MAP_BY_HPP#if defined(_MSC_VER) && (_MSC_VER>=1200)#pragma once#endif#include <boost/config.hpp>#include <boost/bimap/support/map_type_by.hpp>#include <boost/bimap/relation/detail/access_builder.hpp>#ifdef BOOST_BIMAP_ONLY_DOXYGEN_WILL_PROCESS_THE_FOLLOWING_LINESnamespace boost {namespace bimaps {namespace support {/** \brief Gets a map view of a bidirectional mapConvertible to \c map_type_by<Tag,Bimap>::typeInstead of using \c map_type_by<Tag,Bimap>::type this functions use\b Boost.call_traits to find the best way to return this value. To helpthe user of this function the following metafunction is provided\codenamespace result_of {template< class Tag, class Bimap >struct map_by( Bimap & b );} // namespace result_of\endcodeSee also member_at, value_type_of.\ingroup bimap_group                                                                        **/template< class Tag, class Bimap >BOOST_DEDUCED_TYPENAME result_of::map_by<Tag,Bimap>::type    map_by( Bimap & b );} // namespace support} // namespace bimaps} // namespace boost#endif // BOOST_BIMAP_ONLY_DOXYGEN_WILL_PROCESS_THE_FOLLOWING_LINES#ifndef BOOST_BIMAP_DOXIGEN_WILL_NOT_PROCESS_THE_FOLLOWING_LINESnamespace boost {namespace bimaps {namespace support {// Since it is very error-prone to directly write the hole bunch// of relation accesor. They are buil from litle macro blocks that// are both more readable, leading to self docummenting code and a// lot more easier to understand and mantain.// It is very important to note that the three building blocks have// to laid in the same namespace in order to work. There is also// important to keep them in order.// The forward declaration are not necesary but they help a lot to// the reader, as they undercover what is the signature of the// result code.// In the end, it is not quicker to do it in this way because you// write a lot. But this code has no complexity at all and almost// every word writed is for documentation.// Result of// -------------------------------------------------------------------------/*    namespace result_of {    template< class Tag, class Bimap >    struct map_by<Tag,Bimap>;    {        typedef -unspecified- type;    };    } // namespace result_of*/BOOST_BIMAP_SYMMETRIC_ACCESS_RESULT_OF_BUILDER(    map_by,    map_type_by)// Implementation// -------------------------------------------------------------------------BOOST_BIMAP_SYMMETRIC_ACCESS_IMPLEMENTATION_BUILDER(    map_by,    Bimap,    b,    return b.left,    return b.right)// Interface// --------------------------------------------------------------------------BOOST_BIMAP_SYMMETRIC_ACCESS_INTERFACE_BUILDER(    map_by)} // namespace support} // namespace bimaps} // namespace boost#endif // BOOST_BIMAP_DOXIGEN_WILL_NOT_PROCESS_THE_FOLLOWING_LINES#endif // BOOST_BIMAP_SUPPORT_MAP_BY_HPP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -