From fa90de2a36615e4a66dabdbd6682a2f9bc194353 Mon Sep 17 00:00:00 2001 From: Edward Diener Date: Sat, 18 Jan 2020 11:40:22 -0500 Subject: [PATCH] Added documentation for the new metafunctions has_property_tag and its individual equivalents. --- doc/function_types.qbk | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/doc/function_types.qbk b/doc/function_types.qbk index 598a7b5..f41cd7a 100644 --- a/doc/function_types.qbk +++ b/doc/function_types.qbk @@ -837,6 +837,43 @@ values for the same property the value of the rightmost argument is used. [endsect] +[section:has_property_tag has_property_tag] + + template + struct has_property_tag; + +[*Header] + + #include + +[variablelist + [[[^Tag]][Possibly compound property tag]] + [[[^PropertyTag]][Single property tag]] + [[[^has_property_tag]][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 + 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 [^null_tag], with either `has_property_tag` +or `has_null_property_tag`, always tests whether the [^Tag] is the single +[^null_tag] property_tag. +] + +[endsect] + [endsect] [/ Tag Types] [/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ]