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

metadata_access_builder.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/detail/metadata_access_builder.hpp/// \brief Define macros to help building metafunctions#ifndef BOOST_BIMAP_RELATION_DETAIL_METADATA_ACCESS_BUILDER_HPP#define BOOST_BIMAP_RELATION_DETAIL_METADATA_ACCESS_BUILDER_HPP#if defined(_MSC_VER) && (_MSC_VER>=1200)#pragma once#endif#include <boost/config.hpp>#include <boost/bimap/relation/support/is_tag_of_member_at.hpp>#include <boost/bimap/detail/debug/static_error.hpp>#include <boost/utility/enable_if.hpp>#include <boost/preprocessor/cat.hpp>/******************************************************************************              BIMAP SYMMETRIC METADATA ACCESS INTERFACE*******************************************************************************template< class Tag, class SymmetricType >struct NAME{    typedef -unspecified- type;};******************************************************************************//*===========================================================================*/#define BOOST_BIMAP_SYMMETRIC_METADATA_ACCESS_BUILDER(                        \                                                                              \        NAME,                                                                 \        METADATA_BY_LEFT,                                                     \        METADATA_BY_RIGHT                                                     \    )                                                                         \                                                                              \    template                                                                  \    <                                                                         \        class Tag,                                                            \        class SymmetricType,                                                  \        class Enable = void                                                   \    >                                                                         \    struct NAME                                                               \    {                                                                         \        BOOST_BIMAP_STATIC_ERROR(                                             \            BOOST_PP_CAT(NAME,_FAILURE),                                      \            (SymmetricType,Tag)                                               \        );                                                                    \    };                                                                        \                                                                              \    template< class Tag, class SymmetricType >                                \    struct NAME                                                               \    <                                                                         \        Tag, SymmetricType,                                                   \        BOOST_DEDUCED_TYPENAME enable_if                                      \        <                                                                     \            ::boost::bimaps::relation::support::is_tag_of_member_at_left      \            <                                                                 \                Tag,                                                          \                SymmetricType                                                 \            >                                                                 \                                                                              \        >::type                                                               \    >                                                                         \    {                                                                         \        typedef BOOST_DEDUCED_TYPENAME SymmetricType::METADATA_BY_LEFT type;  \    };                                                                        \                                                                              \    template< class Tag, class SymmetricType >                                \    struct NAME                                                               \    <                                                                         \        Tag, SymmetricType,                                                   \        BOOST_DEDUCED_TYPENAME enable_if                                      \        <                                                                     \            ::boost::bimaps::relation::support::is_tag_of_member_at_right     \            <                                                                 \                Tag,                                                          \                SymmetricType                                                 \            >                                                                 \                                                                              \        >::type                                                               \    >                                                                         \    {                                                                         \        typedef BOOST_DEDUCED_TYPENAME SymmetricType::METADATA_BY_RIGHT type; \    };/*===========================================================================*/#endif // BOOST_BIMAP_RELATION_DETAIL_METADATA_ACCES_BUILDER_HPP

⌨️ 快捷键说明

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