Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for a snapshot of the develop branch, built from commit d3ab4fa067.
PrevUpHomeNext

Tag Types

variadic
non_variadic
default_cc
const_qualified
non_const
volatile_qualified
non_volatile
non_cv
const_non_volatile
volatile_non_const
cv_qualfied
null_tag
tag
has_property_tag
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.

tag

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] Note

Testing for the null_tag, with either has_property_tag<Tag,null_tag> or has_null_property_tag<Tag>, always tests whether the Tag is the single null_tag property_tag.


PrevUpHomeNext