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

static_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/static_access_builder.hpp/// \brief Define macros to help building metafunctions#ifndef BOOST_BIMAP_RELATION_DETAIL_STATIC_ACCESS_BUILDER_HPP#define BOOST_BIMAP_RELATION_DETAIL_STATIC_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 STATIC ACCESS INTERFACE*******************************************************************************template< class Tag, class SYMETRIC_TYPE >struct NAME{    -UNDEFINED BODY-;};******************************************************************************//*===========================================================================*/#define BOOST_BIMAP_SYMMETRIC_STATIC_ACCESS_BUILDER(                          \                                                                              \        NAME,                                                                 \        SYMMETRIC_TYPE,                                                       \        LEFT_BODY,                                                            \        RIGHT_BODY                                                            \    )                                                                         \                                                                              \    template                                                                  \    <                                                                         \        class Tag,                                                            \        class SYMMETRIC_TYPE,                                                 \        class Enable = void                                                   \    >                                                                         \    struct NAME                                                               \    {                                                                         \        BOOST_BIMAP_STATIC_ERROR(                                             \            BOOST_PP_CAT(NAME,_FAILURE),                                      \            (SYMMETRIC_TYPE,Tag)                                              \        );                                                                    \    };                                                                        \                                                                              \    template< class Tag, class SYMMETRIC_TYPE >                               \    struct NAME                                                               \    <                                                                         \        Tag, SYMMETRIC_TYPE,                                                  \        BOOST_DEDUCED_TYPENAME enable_if                                      \        <                                                                     \            ::boost::bimaps::relation::support::is_tag_of_member_at_left      \            <                                                                 \                Tag,                                                          \                SYMMETRIC_TYPE                                                \            >                                                                 \                                                                              \        >::type                                                               \    >                                                                         \    {                                                                         \        LEFT_BODY;                                                            \    };                                                                        \                                                                              \    template< class Tag, class SYMMETRIC_TYPE >                               \    struct NAME                                                               \    <                                                                         \        Tag, SYMMETRIC_TYPE,                                                  \        BOOST_DEDUCED_TYPENAME enable_if                                      \        <                                                                     \            ::boost::bimaps::relation::support::is_tag_of_member_at_right     \            <                                                                 \                Tag,                                                          \                SYMMETRIC_TYPE                                                \            >                                                                 \                                                                              \        >::type                                                               \    >                                                                         \    {                                                                         \        RIGHT_BODY;                                                           \    };/*===========================================================================*/#endif // BOOST_BIMAP_RELATION_DETAIL_STATIC_ACCES_BUILDER_HPP

⌨️ 快捷键说明

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