/usr/include/boost/parameter/aux_/preprocessor/impl
NameSizeModeActions
argument_specs.hpp9380644editdlrm
arity_range.hpp16560644editdlrm
flatten.hpp70570644editdlrm
forwarding_overloads.hpp322900644editdlrm
for_each.hpp68760644editdlrm
function_cast.hpp241050644editdlrm
function_dispatch_layer.hpp292030644editdlrm
function_dispatch_tuple.hpp10640644editdlrm
function_forward_match.hpp15260644editdlrm
function_name.hpp73720644editdlrm
no_spec_overloads.hpp196670644editdlrm
parenthesized_return_type.hpp36830644editdlrm
parenthesized_type.hpp10860644editdlrm
specification.hpp53960644editdlrm
split_args.hpp32660644editdlrm
Edit: /usr/include/boost/parameter/aux_/preprocessor/impl/function_name.hpp (7372B)
// Copyright Daniel Wallin 2006. // 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) #ifndef BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_FUNCTION_NAME_HPP #define BOOST_PARAMETER_AUX_PREPROCESSOR_IMPL_FUNCTION_NAME_HPP #define BOOST_PARAMETER_MEMBER_FUNCTION_CHECK_STATIC_static () /**/ #include #include #define BOOST_PARAMETER_MEMBER_FUNCTION_IS_STATIC(name) \ BOOST_PARAMETER_IS_NULLARY( \ BOOST_PP_CAT(BOOST_PARAMETER_MEMBER_FUNCTION_CHECK_STATIC_, name) \ ) /**/ #include #include #if defined(BOOST_MSVC) // Workaround for MSVC preprocessor. // // When stripping static from "static f", msvc will produce " f". The leading // whitespace doesn't go away when pasting the token with something else, so // this thing is a hack to strip the whitespace. #define BOOST_PARAMETER_MEMBER_FUNCTION_STRIP_STATIC_static ( /**/ #define BOOST_PARAMETER_MEMBER_FUNCTION_STRIP_STATIC_AUX(name) \ BOOST_PP_CAT(BOOST_PARAMETER_MEMBER_FUNCTION_STRIP_STATIC_, name)) /**/ #define BOOST_PARAMETER_MEMBER_FUNCTION_STRIP_STATIC(name) \ BOOST_PP_SEQ_HEAD( \ BOOST_PARAMETER_MEMBER_FUNCTION_STRIP_STATIC_AUX(name) \ ) /**/ #else #define BOOST_PARAMETER_MEMBER_FUNCTION_STRIP_STATIC_static /**/ #define BOOST_PARAMETER_MEMBER_FUNCTION_STRIP_STATIC(name) \ BOOST_PP_CAT(BOOST_PARAMETER_MEMBER_FUNCTION_STRIP_STATIC_, name) /**/ #endif // MSVC workarounds needed #include #define BOOST_PARAMETER_MEMBER_FUNCTION_STATIC(name) \ BOOST_PP_EXPR_IF( \ BOOST_PARAMETER_MEMBER_FUNCTION_IS_STATIC(name), static \ ) /**/ #include #include #define BOOST_PARAMETER_MEMBER_FUNCTION_NAME(name) \ BOOST_PP_IF( \ BOOST_PARAMETER_MEMBER_FUNCTION_IS_STATIC(name) \ , BOOST_PARAMETER_MEMBER_FUNCTION_STRIP_STATIC \ , name BOOST_PP_TUPLE_EAT(1) \ )(name) /**/ // Produces a name for a parameter specification for the function named base. #define BOOST_PARAMETER_FUNCTION_SPECIFICATION_NAME(base, is_const) \ BOOST_PP_CAT( \ BOOST_PP_CAT( \ BOOST_PP_IF( \ is_const \ , boost_param_parameters_const_ \ , boost_param_parameters_ \ ) \ , __LINE__ \ ) \ , BOOST_PARAMETER_MEMBER_FUNCTION_NAME(base) \ ) /**/ // Produces a name for a result type metafunction for the no-spec function // named base. #define BOOST_PARAMETER_NO_SPEC_FUNCTION_RESULT_NAME(base, is_const) \ BOOST_PP_CAT( \ BOOST_PP_CAT( \ BOOST_PP_IF( \ is_const \ , boost_param_no_spec_result_const_ \ , boost_param_no_spec_result_ \ ) \ , __LINE__ \ ) \ , BOOST_PARAMETER_MEMBER_FUNCTION_NAME(base) \ ) /**/ // Produces a name for a result type metafunction for the function named base. #define BOOST_PARAMETER_FUNCTION_RESULT_NAME(base, is_const) \ BOOST_PP_CAT( \ BOOST_PP_CAT( \ BOOST_PP_IF( \ is_const \ , boost_param_result_const_ \ , boost_param_result_ \ ) \ , __LINE__ \ ) \ , BOOST_PARAMETER_MEMBER_FUNCTION_NAME(base) \ ) /**/ // Produces a name for the implementation function to which the no-spec // function named base forwards its result type and argument pack. #define BOOST_PARAMETER_NO_SPEC_FUNCTION_IMPL_NAME(base, is_const) \ BOOST_PP_CAT( \ BOOST_PP_CAT( \ BOOST_PP_IF( \ is_const \ , boost_param_no_spec_impl_const \ , boost_param_no_spec_impl \ ) \ , __LINE__ \ ) \ , BOOST_PARAMETER_MEMBER_FUNCTION_NAME(base) \ ) /**/ // Can't do boost_param_impl_ ## basee // because base might start with an underscore. // daniel: what? how is that relevant? the reason for using CAT() // is to make sure base is expanded. i'm not sure we need to here, // but it's more stable to do it. #define BOOST_PARAMETER_FUNCTION_IMPL_NAME(base, is_const) \ BOOST_PP_CAT( \ BOOST_PP_CAT( \ BOOST_PP_IF(is_const, boost_param_impl_const, boost_param_impl) \ , __LINE__ \ ) \ , BOOST_PARAMETER_MEMBER_FUNCTION_NAME(base) \ ) /**/ #endif // include guard