x
Yes
No
Do you want to visit DriveHQ English website?
首页
产品服务
价格
免费试用
下载客户端
关于我们
云文件服务
|
云备份服务
|
FTP服务
|
企业邮箱服务
|
网站托管
|
客户端软件
云文件服务
云备份服务
FTP服务
企业级邮箱服务
网站托管
客户端软件
manage_additional_parameters.hpp - Hosted on DriveHQ Cloud IT Platform
返回上层目录
上传
下载
共享
发布
新建文件夹
新建文件
复制
剪切
删除
粘贴
评论
升级服务
路径: \\game3dprogramming\materials\GameFactory\GameFactoryDemo\references\boost_1_35_0\boost\bimap\detail\manage_additional_parameters.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 detail/manage_additional_parameters.hpp /// \brief Utility class to extract the additional parameters from the template parameters. #ifndef BOOST_BIMAP_DETAIL_MANAGE_ADDITIONAL_PARAMETERS_HPP #define BOOST_BIMAP_DETAIL_MANAGE_ADDITIONAL_PARAMETERS_HPP #if defined(_MSC_VER) && (_MSC_VER>=1200) #pragma once #endif #include
#include
// Boost.MPL #include
#include
#include
#include
#include
namespace boost { namespace bimaps { template< class Type > struct with_info { typedef Type value_type; }; namespace detail { /// \brief Metafunction to check if a given type is a data_hook specification. template< class Type > struct is_with_info : ::boost::mpl::false_ {}; template< class ValueType > struct is_with_info< with_info
> : ::boost::mpl::true_ {}; /** \struct boost::bimaps::detail::manage_additional_parameters \brief Utility class to extract the additional parameters from the template parameters. \code template< class AP1, class AP2, class AP3 > struct manage_additional_parameters { struct parameters { typedef -unspecified- set_type_of_relation; typedef -unspecified- data_hook; typedef -unspecified- allocator; }; typedef parameters type; }; \endcode See also bimap, bimap_core. **/ #ifndef BOOST_BIMAP_DOXYGEN_WILL_NOT_PROCESS_THE_FOLLOWING_LINES template< class AP1, class AP2, class AP3 > struct manage_additional_parameters { // (1) manage_additional_parameters< // not_specified,not_specified,not_specified> // // set_type_of_relation: based on the left key type // info_hook: no additional info // allocator: default allocator struct case_NNN { typedef left_based set_type_of_relation; typedef std::allocator
allocator; typedef ::boost::mpl::na additional_info; }; // (2) manage_additional_parameters
// // set_type_of_relation: based on the left key type // info_hook: no additional info // allocator: Allocator struct case_ANN { typedef left_based set_type_of_relation; typedef AP1 allocator; typedef ::boost::mpl::na additional_info; }; // (3) manage_additional_parameters< // SetOfRelationType,not_specified,not_specified> // // set_type_of_relation: SetTypeOfRelation // info_hook: no additional info // allocator: default allocator struct case_SNN { typedef AP1 set_type_of_relation; typedef std::allocator
allocator; typedef ::boost::mpl::na additional_info; }; // (4) manage_additional_parameters< // SetTypeOfRelation,Allocator,not_specified> // // set_type_of_relation: SetTypeOfRelation // info_hook: no additional info // allocator: Allocator struct case_SAN { typedef AP1 set_type_of_relation; typedef AP2 allocator; typedef ::boost::mpl::na additional_info; }; // (5) manage_additional_parameters
// // set_type_of_relation: based on the left key type // info_hook: InfoToHook // allocator: default allocator struct case_HNN { typedef left_based set_type_of_relation; typedef std::allocator
allocator; typedef BOOST_DEDUCED_TYPENAME AP1::value_type additional_info; }; // (6) manage_additional_parameters< // SetTypeOfRelation,InfoToHook,not_specified> // // set_type_of_relation: SetTypeOfRelation // info_hook: InfoToHook // allocator: default allocator struct case_SHN { typedef AP1 set_type_of_relation; typedef std::allocator
allocator; typedef BOOST_DEDUCED_TYPENAME AP2::value_type additional_info; }; // (7) manage_additional_parameters< // DataToHook,Allocator,not_specified> // // set_type_of_relation: SetTypeOfRelation // info_hook: InfoToHook // allocator: default allocator struct case_HAN { typedef left_based set_type_of_relation; typedef AP2 allocator; typedef BOOST_DEDUCED_TYPENAME AP1::value_type additional_info; }; // (8) manage_additional_parameters< // SetTypeOfRelation,DataToHook,Allocator> // // set_type_of_relation: SetTypeOfRelation // info_hook: InfoToHook // allocator: Allocator struct case_SHA { typedef AP1 set_type_of_relation; typedef AP2 allocator; typedef BOOST_DEDUCED_TYPENAME AP2::value_type additional_info; }; // Some annidated mpl::if_ and we are done! typedef BOOST_DEDUCED_TYPENAME mpl::if_ < ::boost::mpl::is_na
, case_NNN, // (1) BOOST_DEDUCED_TYPENAME mpl::if_ < ::boost::mpl::is_na
, BOOST_DEDUCED_TYPENAME mpl::if_ < is_set_type_of_relation
, case_SNN, // (3) BOOST_DEDUCED_TYPENAME mpl::if_ < is_with_info
, case_HNN, // (5) case_ANN // (2) >::type >::type, BOOST_DEDUCED_TYPENAME mpl::if_ < ::boost::mpl::is_na
, BOOST_DEDUCED_TYPENAME mpl::if_ < is_with_info
, case_HAN, // (7) BOOST_DEDUCED_TYPENAME mpl::if_ < is_with_info
, case_SHN, // (6) case_SAN // (4) >::type >::type, case_SHA // (8) >::type >::type >::type type; }; #endif // BOOST_BIMAP_DOXYGEN_WILL_NOT_PROCESS_THE_FOLLOWING_LINES } // namespace detail } // namespace bimaps } // namespace boost #endif // BOOST_BIMAP_DETAIL_MANAGE_ADDITIONAL_PARAMETERS_HPP
manage_additional_parameters.hpp
网页地址
文件地址
上一页
7/15
下一页
下载
( 6 KB )
Comments
Total ratings:
0
Average rating:
无评论
of 10
Would you like to comment?
Join now
, or
Logon
if you are already a member.