...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
typedef unspecified variadic;
Header
#include <boost/function_types/property_tags.hpp>
States that a function type takes a variable number of arguments through
an ellipsis parameter (such as printf
).
typedef unspecified non_variadic;
Header
#include <boost/function_types/property_tags.hpp>
States that a function type does not have an ellipsis parameter.
typedef unspecified default_cc;
Header
#include <boost/function_types/property_tags.hpp>
States that a function type encodes the default calling convention.
typedef unspecified const_qualified;
Header
#include <boost/function_types/property_tags.hpp>
States that a function type is const qualified.
typedef unspecified non_const;
Header
#include <boost/function_types/property_tags.hpp>
States that a function type is not const qualified.
typedef unspecified volatile_qualified;
Header
#include <boost/function_types/property_tags.hpp>
States that a function type is volatile qualified.
typedef unspecified non_volatile;
Header
#include <boost/function_types/property_tags.hpp>
States that a function type is not volatile qualified.
typedef unspecified non_cv;
Header
#include <boost/function_types/property_tags.hpp>
States that a function type is neither const nor volatile qualified. Equivalent
to __tag<__non_const,__non_volatile>
,
but involves fewer template instantiations when evaluated.
typedef unspecified const_non_volatile;
Header
#include <boost/function_types/property_tags.hpp>
States that a function type is const but not volatile qualified. Equivalent
to __tag<__const_qualified,__non_volatile>
,
but involves fewer template instantiations when evaluated.
typedef unspecified volatile_non_const;
Header
#include <boost/function_types/property_tags.hpp>
States that a function type is volatile but not const qualified. Equivalent
to __tag<__volatile_qualified,__non_const>
,
but involves fewer template instantiations when evaluated.
typedef unspecified cv_qualified;
Header
#include <boost/function_types/property_tags.hpp>
States that a function type is both const and volatile qualified. Equivalent
to __tag<__const_qualified,__volatile_qualified>
,
but involves fewer template instantiations when evaluated.
typedef unspecified null_tag;
Header
#include <boost/function_types/property_tags.hpp>
States nothing.
template<class Tag1, class Tag2, class Tag3 = null_tag, class Tag4 = null_tag> struct tag;
Header
#include <boost/function_types/property_tags.hpp>
TagN
Property tag
tag<Tag1,Tag2...>
Compound property tag
Combination of up to four property tags. If the arguments describe different values for the same property the value of the rightmost argument is used.
template<class Tag, class PropertyTag> struct has_property_tag;
Header
#include <boost/function_types/property_tags.hpp>
Tag
Possibly compound property tag
PropertyTag
Single property tag
has_property_tag<Tag,PropertyTag>
Test (possibly) compound property tag for single property tag
A metafunction for testing that a compound property tag has a particular single property tag in its composition. Returns a boolean value of true if the particular single property tag is part of the compound property tag, otherwise false.
For convenience there are also individual metafunctions for the built-in property tags of the form
template<class Tag> struct has_'name'_property_tag;
which works exactly the same as has_property_tag
,
where name can be variadic
,default_cc
,const
,volatile
,cv
,or
null
. In these individual metafunctions const
is short for const_qualified
, volatile
is short for volatile_qualified
, cv
is short for cv_qualified
, and null
is short for null_tag
.
Note | |
---|---|
Testing for the |