/usr/include/boost/tti
NameSizeModeActions
detail/-0755rm
gen/-0755rm
has_class.hpp81680644editdlrm
has_data.hpp45940644editdlrm
has_enum.hpp80180644editdlrm
has_function.hpp49950644editdlrm
has_function_template.hpp127270644editdlrm
has_member_data.hpp45160644editdlrm
has_member_function.hpp58250644editdlrm
has_member_function_template.hpp142180644editdlrm
has_static_member_data.hpp48130644editdlrm
has_static_member_function.hpp57060644editdlrm
has_static_member_function_template.hpp144540644editdlrm
has_template.hpp147270644editdlrm
has_type.hpp78980644editdlrm
has_union.hpp78540644editdlrm
member_type.hpp88890644editdlrm
tti.hpp8420644editdlrm
Edit: /usr/include/boost/tti/has_static_member_function.hpp (5706B)
// (C) Copyright Edward Diener 2011,2012,2013 // Use, modification and distribution are subject to 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). #if !defined(BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_HPP) #define BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_HPP #include #include #include #include #include #include /* The succeeding comments in this file are in doxygen format. */ /** \file */ /// A macro which expands to a metafunction which tests whether a static member function with a particular name and signature exists. /** BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION is a macro which expands to a metafunction. The metafunction tests whether a static member function with a particular name and signature exists. The macro takes the form of BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION(trait,name) where trait = the name of the metafunction
name = the name of the inner member. BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION generates a metafunction called "trait" where 'trait' is the macro parameter. @code template struct trait { static const value = unspecified; typedef mpl::bool_ type; }; The metafunction types and return: BOOST_TTI_TP_T = the enclosing type in which to look for our 'name'. The enclosing type can be a class, struct, or union. BOOST_TTI_TP_R = the return type of the static member function OR the signature of a function in the form of Return_Type ( Parameter_Types ) BOOST_TTI_TP_FS = (optional) the parameters of the static member function as a boost::mpl forward sequence if the second parameter is a return type and the function parameters exist. BOOST_TTI_TP_TAG = (optional) a boost::function_types tag to apply to the static member function if the second parameter is a return type and the need for a tag exists. returns = 'value' is true if the 'name' exists, with the appropriate static member function type, otherwise 'value' is false. @endcode */ #define BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION(trait,name) \ BOOST_TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER_FUNCTION(trait,name) \ template,class BOOST_TTI_TP_TAG = boost::function_types::null_tag> \ struct trait \ { \ typedef typename \ BOOST_PP_CAT(trait,_detail_hsmf)::type type; \ BOOST_STATIC_CONSTANT(bool,value=type::value); \ }; \ /**/ /// A macro which expands to a metafunction which tests whether a static member function with a particular name and signature exists. /** BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION is a macro which expands to a metafunction. The metafunction tests whether a static member function with a particular name and signature exists. The macro takes the form of BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION(name) where name = the name of the inner member. BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION generates a metafunction called "has_static_member_function_name" where 'name' is the macro parameter. @code template struct has_static_member_function_'name' { static const value = unspecified; typedef mpl::bool_ type; }; The metafunction types and return: BOOST_TTI_TP_T = the enclosing type in which to look for our 'name'. The enclosing type can be a class, struct, or union. BOOST_TTI_TP_R = the return type of the static member function OR the signature of a function in the form of Return_Type ( Parameter_Types ) BOOST_TTI_TP_FS = (optional) the parameters of the static member function as a boost::mpl forward sequence if the second parameter is a return type and the function parameters exist. BOOST_TTI_TP_TAG = (optional) a boost::function_types tag to apply to the static member function if the second parameter is a return type and the need for a tag exists. returns = 'value' is true if the 'name' exists, with the appropriate static member function type, otherwise 'value' is false. @endcode */ #define BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION(name) \ BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION \ ( \ BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_GEN(name), \ name \ ) \ /**/ #endif // BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_HPP