count_args.hpp

来自「CGAL is a collaborative effort of severa」· HPP 代码 · 共 106 行

HPP
106
字号
// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION// Copyright Aleksey Gurtovoy 2000-2004//// 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)//// See http://www.boost.org/libs/mpl for documentation.// $Source: /CVSROOT/CGAL/Packages/Boost/include/boost/mpl/aux_/count_args.hpp,v $// $Date: 2004/11/20 10:39:30 $// $Revision: 1.1.1.2 $#include <boost/preprocessor/expr_if.hpp>#include <boost/preprocessor/inc.hpp>#include <boost/preprocessor/cat.hpp>#if !defined(AUX778076_COUNT_ARGS_PARAM_NAME)#   define AUX778076_COUNT_ARGS_PARAM_NAME T#endif#if !defined(AUX778076_COUNT_ARGS_TEMPLATE_PARAM)#   define AUX778076_COUNT_ARGS_TEMPLATE_PARAM typename AUX778076_COUNT_ARGS_PARAM_NAME#endif// local macros, #undef-ined at the end of the header#if !defined(AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES)#   include <boost/mpl/aux_/preprocessor/repeat.hpp>#   include <boost/mpl/aux_/preprocessor/params.hpp>#   define AUX778076_COUNT_ARGS_REPEAT BOOST_MPL_PP_REPEAT#   define AUX778076_COUNT_ARGS_PARAMS(param) \    BOOST_MPL_PP_PARAMS( \          AUX778076_COUNT_ARGS_ARITY \        , param \        ) \    /**/#else#   include <boost/preprocessor/enum_shifted_params.hpp>#   include <boost/preprocessor/repeat.hpp>#   include <boost/preprocessor/inc.hpp>#   define AUX778076_COUNT_ARGS_REPEAT BOOST_PP_REPEAT#   define AUX778076_COUNT_ARGS_PARAMS(param) \    BOOST_PP_ENUM_SHIFTED_PARAMS( \          BOOST_PP_INC(AUX778076_COUNT_ARGS_ARITY) \        , param \        ) \    /**/#endif // AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES#define AUX778076_IS_ARG_TEMPLATE_NAME \    BOOST_PP_CAT(is_,BOOST_PP_CAT(AUX778076_COUNT_ARGS_PREFIX,_arg)) \/**/#define AUX778076_COUNT_ARGS_FUNC(unused, i, param) \    BOOST_PP_EXPR_IF(i, +) \    AUX778076_IS_ARG_TEMPLATE_NAME<BOOST_PP_CAT(param,BOOST_PP_INC(i))>::value \/**/// is_<xxx>_argtemplate< AUX778076_COUNT_ARGS_TEMPLATE_PARAM >struct AUX778076_IS_ARG_TEMPLATE_NAME{    BOOST_STATIC_CONSTANT(bool, value = true);};template<>struct AUX778076_IS_ARG_TEMPLATE_NAME<AUX778076_COUNT_ARGS_DEFAULT>{    BOOST_STATIC_CONSTANT(bool, value = false);};// <xxx>_count_argstemplate<      AUX778076_COUNT_ARGS_PARAMS(AUX778076_COUNT_ARGS_TEMPLATE_PARAM)    >struct BOOST_PP_CAT(AUX778076_COUNT_ARGS_PREFIX,_count_args){    BOOST_STATIC_CONSTANT(int, value = AUX778076_COUNT_ARGS_REPEAT(          AUX778076_COUNT_ARGS_ARITY        , AUX778076_COUNT_ARGS_FUNC        , AUX778076_COUNT_ARGS_PARAM_NAME        ));};#undef AUX778076_COUNT_ARGS_FUNC#undef AUX778076_IS_ARG_TEMPLATE_NAME#undef AUX778076_COUNT_ARGS_PARAMS#undef AUX778076_COUNT_ARGS_REPEAT#undef AUX778076_COUNT_ARGS_ARITY#undef AUX778076_COUNT_ARGS_DEFAULT#undef AUX778076_COUNT_ARGS_PREFIX#undef AUX778076_COUNT_ARGS_USE_STANDARD_PP_PRIMITIVES#undef AUX778076_COUNT_ARGS_TEMPLATE_PARAM#undef AUX778076_COUNT_ARGS_PARAM_NAME

⌨️ 快捷键说明

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