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

data_extractor.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 relation/support/data_extractor.hpp/// \brief Data extraction functor.#ifndef BOOST_BIMAP_RELATION_SUPPORT_DATA_EXTRACTOR_HPP#define BOOST_BIMAP_RELATION_SUPPORT_DATA_EXTRACTOR_HPP#if defined(_MSC_VER) && (_MSC_VER>=1200)#pragma once#endif#include <boost/config.hpp>#include <boost/bimap/relation/detail/metadata_access_builder.hpp>/** \struct boost::bimaps::relation::support::data_extractor\brief Data extraction functor.\ingroup relation_group                                                                    **/#ifndef BOOST_BIMAP_DOXYGEN_WILL_NOT_PROCESS_THE_FOLLOWING_LINESnamespace boost {namespace bimaps {namespace relation {namespace support {template< class Tag, class Relation >struct data_extractor_implementation;template< class Relation >struct data_extractor_implementation< member_at::left, Relation > :    public std::unary_function<Relation,BOOST_DEDUCED_TYPENAME Relation::left_value_type>{    BOOST_DEDUCED_TYPENAME Relation::left_value_type const &        operator()(Relation const & rel) const    {        return rel.left;    }    BOOST_DEDUCED_TYPENAME Relation::left_value_type &        operator()(Relation       & rel) const    {        return rel.left;    }};template< class Relation >struct data_extractor_implementation< member_at::right, Relation > :    public std::unary_function<Relation,BOOST_DEDUCED_TYPENAME Relation::right_value_type>{    BOOST_DEDUCED_TYPENAME Relation::right_value_type const &         operator()(Relation const & rel) const    {        return rel.right;    }    BOOST_DEDUCED_TYPENAME Relation::right_value_type &         operator()(Relation       & rel) const    {        return rel.right;    }};template< class Tag, class Relation >struct data_extractor{    typedef data_extractor_implementation    <        BOOST_DEDUCED_TYPENAME member_with_tag<Tag,Relation>::type,        Relation    > type;};template< class Relation >struct both_keys_extractor{    typedef BOOST_DEDUCED_TYPENAME Relation::storage_base result_type;     const result_type & operator()(const Relation & rel) const    {        return rel;    }    result_type & operator()( Relation & rel) const    {        return rel;    }};} // namespace support} // namespace relation} // namespace bimaps} // namespace boost#endif // BOOST_BIMAP_DOXYGEN_WILL_NOT_PROCESS_THE_FOLLOWING_LINES#endif // BOOST_BIMAP_RELATION_SUPPORT_DATA_EXTRACTOR_HPP

⌨️ 快捷键说明

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