forked from boostorg/function_types
Compare commits
81 Commits
boost-1.46
...
develop
Author | SHA1 | Date | |
---|---|---|---|
895335874d | |||
f285a08088 | |||
9dc87ec137 | |||
95997705ed | |||
72ccfa3b96 | |||
867588b91e | |||
0f29b01478 | |||
fa90de2a36 | |||
669f083f33 | |||
920574cb75 | |||
c448940ca6 | |||
79620e3e60 | |||
5f41eff589 | |||
ae4fde2e2a | |||
4f247c06e4 | |||
78dabb2dd8 | |||
f542321082 | |||
842b853351 | |||
b7e56e1c35 | |||
9699db7e6c | |||
4c250985a1 | |||
ed059784b9 | |||
1e434eff75 | |||
27aeab935b | |||
fd39273e0d | |||
b3e185a544 | |||
85cf2ccd77 | |||
d81450d8ca | |||
915d444667 | |||
77dffdafff | |||
e74cb4aa4a | |||
22c5c2ae4f | |||
290a8e88e7 | |||
26e800a52f | |||
fa1a0fec9c | |||
0c7bebd130 | |||
f99be38d89 | |||
c86381fb4c | |||
222884c4f7 | |||
8af990ab6f | |||
3ec0754b4f | |||
caed0a6ee8 | |||
2cc2141906 | |||
46f56ef9ae | |||
e7fcc6818b | |||
38cc207b23 | |||
1f2bc4d8d3 | |||
1f51d9ba29 | |||
c73823068f | |||
6778206732 | |||
a05ddf58ef | |||
e39914bddd | |||
64776ee43c | |||
d3b53cbdf8 | |||
0bf0587f58 | |||
1b4fdee6ff | |||
b7da1bd1ab | |||
8554f430fe | |||
ee8ed76bc5 | |||
e60e1b82aa | |||
594c159568 | |||
0071f74393 | |||
f9a2056786 | |||
e4da19535d | |||
04a28f6d46 | |||
8bc1c768ad | |||
f5084b1410 | |||
adcac6d5d0 | |||
9d9c35e797 | |||
096ac6aac4 | |||
0a515cc963 | |||
2fe398d9f8 | |||
e171bda08f | |||
72f89e9434 | |||
508b6ff4d7 | |||
5ee20a4383 | |||
d989383a27 | |||
d209118686 | |||
ed24c45406 | |||
b60bbe281f | |||
876fff56e7 |
42
.travis.yml
Normal file
42
.travis.yml
Normal file
@ -0,0 +1,42 @@
|
||||
# Copyright 2016 Edward Diener
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
|
||||
language: cpp
|
||||
|
||||
sudo: false
|
||||
|
||||
python: "2.7"
|
||||
|
||||
os:
|
||||
- linux
|
||||
- osx
|
||||
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- develop
|
||||
|
||||
install:
|
||||
- cd ..
|
||||
- git clone -b $TRAVIS_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
|
||||
- cd boost-root
|
||||
- git submodule update --init tools/build
|
||||
- git submodule update --init libs/config
|
||||
- git submodule update --init tools/boostdep
|
||||
- git submodule update --init tools/boost_install
|
||||
- git submodule update --init libs/headers
|
||||
- cp -r $TRAVIS_BUILD_DIR/* libs/function_types
|
||||
- python tools/boostdep/depinst/depinst.py -I example function_types
|
||||
- ./bootstrap.sh
|
||||
- ./b2 headers
|
||||
|
||||
script:
|
||||
- TOOLSET=gcc,clang
|
||||
- if [ $TRAVIS_OS_NAME == osx ]; then TOOLSET=clang; fi
|
||||
- ./b2 --verbose-test libs/config/test//config_info toolset=$TOOLSET || true
|
||||
- ./b2 libs/function_types/test toolset=$TOOLSET
|
||||
|
||||
notifications:
|
||||
email:
|
||||
on_success: always
|
21
CMakeLists.txt
Normal file
21
CMakeLists.txt
Normal file
@ -0,0 +1,21 @@
|
||||
# Copyright 2019 Mike Dev
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# See accompanying file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt
|
||||
|
||||
cmake_minimum_required( VERSION 3.5...3.20 )
|
||||
project( boost_function_types VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX )
|
||||
|
||||
add_library( boost_function_types INTERFACE )
|
||||
add_library( Boost::function_types ALIAS boost_function_types )
|
||||
|
||||
target_include_directories( boost_function_types INTERFACE include )
|
||||
|
||||
target_link_libraries( boost_function_types
|
||||
INTERFACE
|
||||
Boost::config
|
||||
Boost::core
|
||||
Boost::detail
|
||||
Boost::mpl
|
||||
Boost::preprocessor
|
||||
Boost::type_traits
|
||||
)
|
48
appveyor.yml
Normal file
48
appveyor.yml
Normal file
@ -0,0 +1,48 @@
|
||||
# Copyright 2017 Edward Diener
|
||||
# Distributed under the Boost Software License, Version 1.0.
|
||||
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
|
||||
|
||||
version: 1.0.{build}-{branch}
|
||||
|
||||
shallow_clone: true
|
||||
|
||||
branches:
|
||||
only:
|
||||
- master
|
||||
- develop
|
||||
|
||||
environment:
|
||||
matrix:
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
TOOLSET: msvc-10.0,msvc-11.0
|
||||
ADDRMD: 32
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
|
||||
TOOLSET: msvc-12.0,msvc-14.0
|
||||
ADDRESS_MODEL: 32,64
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||
TOOLSET: msvc-14.1
|
||||
CXXSTD: 14,17
|
||||
ADDRESS_MODEL: 32,64
|
||||
- APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019
|
||||
TOOLSET: msvc-14.2
|
||||
CXXSTD: 14,17
|
||||
ADDRESS_MODEL: 32,64
|
||||
|
||||
install:
|
||||
- cd ..
|
||||
- git clone -b %APPVEYOR_REPO_BRANCH% https://github.com/boostorg/boost.git boost-root
|
||||
- cd boost-root
|
||||
- git submodule update --init tools/build
|
||||
- git submodule update --init libs/config
|
||||
- git submodule update --init tools/boostdep
|
||||
- git submodule update --init tools/boost_install
|
||||
- git submodule update --init libs/headers
|
||||
- xcopy /s /e /q %APPVEYOR_BUILD_FOLDER% libs\function_types
|
||||
- python tools/boostdep/depinst/depinst.py -I example function_types
|
||||
- bootstrap
|
||||
- b2 headers
|
||||
|
||||
build: off
|
||||
|
||||
test_script:
|
||||
- b2 libs/function_types/test toolset=%TOOLSET%
|
@ -6,31 +6,25 @@
|
||||
|
||||
# Generates preprocessed files with wave.
|
||||
|
||||
rule wave
|
||||
{
|
||||
Depends $1 : $2 ;
|
||||
}
|
||||
|
||||
actions wave
|
||||
{
|
||||
../../../dist/bin/wave -S../../.. $(>) -o $(<)
|
||||
$(>[1]) -S../../.. $(>[2]) -o $(<)
|
||||
}
|
||||
|
||||
make ../../../libs/function_types/build/timestamps/arity_loops
|
||||
: preprocess_arity_loops.cpp : wave
|
||||
W = ../../../tools/wave/build//wave ;
|
||||
|
||||
make arity_loops
|
||||
: preprocess_arity_loops.cpp $(W) : wave : <location>build/timestamps
|
||||
;
|
||||
|
||||
explicit ../../../libs/function_types/build/timestamps/arity_loops ;
|
||||
|
||||
make ../../../libs/function_types/build/timestamps/encoding
|
||||
: preprocess_encoding.cpp : wave
|
||||
make encoding
|
||||
: preprocess_encoding.cpp $(W) : wave : <location>build/timestamps
|
||||
;
|
||||
|
||||
explicit ../../../libs/function_types/build/timestamps/encoding ;
|
||||
|
||||
make ../../../libs/function_types/build/timestamps/cc_names
|
||||
: preprocess_cc_names.cpp : wave
|
||||
make cc_names
|
||||
: preprocess_cc_names.cpp $(W) : wave : <location>build/timestamps
|
||||
;
|
||||
|
||||
explicit ../../../libs/function_types/build/timestamps/cc_names ;
|
||||
|
||||
explicit arity_loops encoding cc_names ;
|
||||
|
||||
|
@ -19,3 +19,9 @@ boostbook standalone
|
||||
<xsl:param>toc.max.depth=1
|
||||
;
|
||||
|
||||
|
||||
###############################################################################
|
||||
alias boostdoc ;
|
||||
explicit boostdoc ;
|
||||
alias boostrelease : standalone ;
|
||||
explicit boostrelease ;
|
||||
|
@ -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<class Tag, class PropertyTag>
|
||||
struct has_property_tag;
|
||||
|
||||
[*Header]
|
||||
|
||||
#include <boost/function_types/property_tags.hpp>
|
||||
|
||||
[variablelist
|
||||
[[[^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 [^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.
|
||||
]
|
||||
|
||||
[endsect]
|
||||
|
||||
[endsect] [/ Tag Types]
|
||||
|
||||
[/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ]
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>About Tag Types</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
|
||||
<link rel="prev" href="use_cases.html" title="Use Cases">
|
||||
@ -24,7 +24,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_functiontypes.about_tag_types"></a><a class="link" href="about_tag_types.html" title="About Tag Types"> About Tag Types</a>
|
||||
<a name="boost_functiontypes.about_tag_types"></a><a class="link" href="about_tag_types.html" title="About Tag Types">About Tag Types</a>
|
||||
</h2></div></div></div>
|
||||
<p>
|
||||
Boost.FunctionTypes uses tag types to encode properties that are not types
|
||||
@ -80,7 +80,8 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Tobias Schwinger<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004-2007 Tobias
|
||||
Schwinger<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Acknowledgements</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
|
||||
<link rel="prev" href="rationale.html" title="Rationale">
|
||||
@ -23,7 +23,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_functiontypes.acknowledgements"></a><a class="link" href="acknowledgements.html" title="Acknowledgements"> Acknowledgements</a>
|
||||
<a name="boost_functiontypes.acknowledgements"></a><a class="link" href="acknowledgements.html" title="Acknowledgements">Acknowledgements</a>
|
||||
</h2></div></div></div>
|
||||
<p>
|
||||
Thanks go to the following people for supporting the development of this library
|
||||
@ -79,7 +79,8 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Tobias Schwinger<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004-2007 Tobias
|
||||
Schwinger<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Introduction</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
|
||||
<link rel="prev" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
|
||||
@ -24,7 +24,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_functiontypes.introduction"></a><a class="link" href="introduction.html" title="Introduction"> Introduction</a>
|
||||
<a name="boost_functiontypes.introduction"></a><a class="link" href="introduction.html" title="Introduction">Introduction</a>
|
||||
</h2></div></div></div>
|
||||
<p>
|
||||
Boost.FunctionTypes provides functionality to classify, decompose and synthesize
|
||||
@ -77,7 +77,8 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Tobias Schwinger<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004-2007 Tobias
|
||||
Schwinger<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Rationale</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
|
||||
<link rel="prev" href="reference/macros.html" title="Macros">
|
||||
@ -24,10 +24,10 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_functiontypes.rationale"></a><a class="link" href="rationale.html" title="Rationale"> Rationale</a>
|
||||
<a name="boost_functiontypes.rationale"></a><a class="link" href="rationale.html" title="Rationale">Rationale</a>
|
||||
</h2></div></div></div>
|
||||
<a name="boost_functiontypes.rationale.error_handling_rationale"></a><h4>
|
||||
<a name="id768333"></a>
|
||||
<a name="boost_functiontypes.rationale.error_handling_rationale-heading"></a>
|
||||
<a class="link" href="rationale.html#boost_functiontypes.rationale.error_handling_rationale">Error
|
||||
handling rationale</a>
|
||||
</h4>
|
||||
@ -42,7 +42,7 @@
|
||||
can be spotted easily.
|
||||
</p>
|
||||
<a name="boost_functiontypes.rationale.why_mpl_sequences_"></a><h4>
|
||||
<a name="id768365"></a>
|
||||
<a name="boost_functiontypes.rationale.why_mpl_sequences_-heading"></a>
|
||||
<a class="link" href="rationale.html#boost_functiontypes.rationale.why_mpl_sequences_">Why MPL Sequences?</a>
|
||||
</h4>
|
||||
<p>
|
||||
@ -55,7 +55,7 @@
|
||||
so another reason is interoperability.
|
||||
</p>
|
||||
<a name="boost_functiontypes.rationale.pointer_to_member_object_types"></a><h4>
|
||||
<a name="id768415"></a>
|
||||
<a name="boost_functiontypes.rationale.pointer_to_member_object_types-heading"></a>
|
||||
<a class="link" href="rationale.html#boost_functiontypes.rationale.pointer_to_member_object_types">Pointer
|
||||
to member object types</a>
|
||||
</h4>
|
||||
@ -64,7 +64,7 @@
|
||||
functionals.
|
||||
</p>
|
||||
<a name="boost_functiontypes.rationale.the_classtransform_template_parameter"></a><h4>
|
||||
<a name="id768441"></a>
|
||||
<a name="boost_functiontypes.rationale.the_classtransform_template_parameter-heading"></a>
|
||||
<a class="link" href="rationale.html#boost_functiontypes.rationale.the_classtransform_template_parameter">The
|
||||
ClassTransform template parameter</a>
|
||||
</h4>
|
||||
@ -81,7 +81,7 @@
|
||||
all parameters uniformly.
|
||||
</p>
|
||||
<a name="boost_functiontypes.rationale.why_tag_types_"></a><h4>
|
||||
<a name="id768490"></a>
|
||||
<a name="boost_functiontypes.rationale.why_tag_types_-heading"></a>
|
||||
<a class="link" href="rationale.html#boost_functiontypes.rationale.why_tag_types_">Why tag types?</a>
|
||||
</h4>
|
||||
<p>
|
||||
@ -100,7 +100,7 @@
|
||||
with older compilers.
|
||||
</p>
|
||||
<a name="boost_functiontypes.rationale.is_it_safe_to_have_the_synthesis_templates_take_a_callable__builtin_type_or_an_mpl_sequence_as_the_first_template_argument_"></a><h4>
|
||||
<a name="id768534"></a>
|
||||
<a name="boost_functiontypes.rationale.is_it_safe_to_have_the_synthesis_templates_take_a_callable__builtin_type_or_an_mpl_sequence_as_the_first_template_argument_-heading"></a>
|
||||
<a class="link" href="rationale.html#boost_functiontypes.rationale.is_it_safe_to_have_the_synthesis_templates_take_a_callable__builtin_type_or_an_mpl_sequence_as_the_first_template_argument_">Is
|
||||
it safe to have the synthesis templates take a callable builtin type or an
|
||||
MPL sequence as the first template argument?</a>
|
||||
@ -115,7 +115,7 @@
|
||||
type a sequence have been included, which can easily violate the ODR.
|
||||
</p>
|
||||
<a name="boost_functiontypes.rationale.why_does_the_hidden__literal_this__literal__parameter_count_for_the__function_arity_of_member_functions_"></a><h4>
|
||||
<a name="id768574"></a>
|
||||
<a name="boost_functiontypes.rationale.why_does_the_hidden__literal_this__literal__parameter_count_for_the__function_arity_of_member_functions_-heading"></a>
|
||||
<a class="link" href="rationale.html#boost_functiontypes.rationale.why_does_the_hidden__literal_this__literal__parameter_count_for_the__function_arity_of_member_functions_">Why
|
||||
does the hidden <code class="literal">this</code> parameter count for the function arity
|
||||
of member functions?</a>
|
||||
@ -126,7 +126,7 @@
|
||||
<pre class="programlisting"><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">size</span><span class="special"><</span> <a class="link" href="reference/decomposition.html#boost_functiontypes.reference.decomposition.parameter_types" title="parameter_types">parameter_types</a><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">>::</span><span class="identifier">value</span> <span class="special">==</span> <a class="link" href="reference/decomposition.html#boost_functiontypes.reference.decomposition.function_arity" title="function_arity">function_arity</a><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">value</span>
|
||||
</pre>
|
||||
<a name="boost_functiontypes.rationale.why_ignore_top_level_cv_qualifiers_on_pointers_"></a><h4>
|
||||
<a name="id768683"></a>
|
||||
<a name="boost_functiontypes.rationale.why_ignore_top_level_cv_qualifiers_on_pointers_-heading"></a>
|
||||
<a class="link" href="rationale.html#boost_functiontypes.rationale.why_ignore_top_level_cv_qualifiers_on_pointers_">Why
|
||||
ignore top-level cv-qualifiers on pointers?</a>
|
||||
</h4>
|
||||
@ -137,7 +137,8 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Tobias Schwinger<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004-2007 Tobias
|
||||
Schwinger<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Reference</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
|
||||
<link rel="prev" href="about_tag_types.html" title="About Tag Types">
|
||||
@ -24,22 +24,23 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_functiontypes.reference"></a><a class="link" href="reference.html" title="Reference"> Reference</a>
|
||||
<a name="boost_functiontypes.reference"></a><a class="link" href="reference.html" title="Reference">Reference</a>
|
||||
</h2></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="reference/classification.html"> Class
|
||||
templates for type classification</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/decomposition.html"> Class templates
|
||||
<dt><span class="section"><a href="reference/classification.html">Class templates
|
||||
for type classification</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/decomposition.html">Class templates
|
||||
for type decomposition</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/synthesis.html"> Class templates
|
||||
<dt><span class="section"><a href="reference/synthesis.html">Class templates
|
||||
for type synthesis</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/tag_types.html"> Tag Types</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/macros.html"> Macros</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/tag_types.html">Tag Types</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/macros.html">Macros</a></span></dt>
|
||||
</dl></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Tobias Schwinger<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004-2007 Tobias
|
||||
Schwinger<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Class templates for type classification</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="../reference.html" title="Reference">
|
||||
@ -24,31 +24,22 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_functiontypes.reference.classification"></a><a class="link" href="classification.html" title="Class templates for type classification"> Class
|
||||
templates for type classification</a>
|
||||
<a name="boost_functiontypes.reference.classification"></a><a class="link" href="classification.html" title="Class templates for type classification">Class templates
|
||||
for type classification</a>
|
||||
</h3></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="classification.html#boost_functiontypes.reference.classification.is_function">
|
||||
is_function</a></span></dt>
|
||||
<dt><span class="section"><a href="classification.html#boost_functiontypes.reference.classification.is_function_pointer">
|
||||
is_function_pointer</a></span></dt>
|
||||
<dt><span class="section"><a href="classification.html#boost_functiontypes.reference.classification.is_function_reference">
|
||||
is_function_reference</a></span></dt>
|
||||
<dt><span class="section"><a href="classification.html#boost_functiontypes.reference.classification.is_member_pointer">
|
||||
is_member_pointer</a></span></dt>
|
||||
<dt><span class="section"><a href="classification.html#boost_functiontypes.reference.classification.is_member_object_pointer">
|
||||
is_member_object_pointer</a></span></dt>
|
||||
<dt><span class="section"><a href="classification.html#boost_functiontypes.reference.classification.is_member_function_pointer">
|
||||
is_member_function_pointer</a></span></dt>
|
||||
<dt><span class="section"><a href="classification.html#boost_functiontypes.reference.classification.is_callable_builtin">
|
||||
is_callable_builtin</a></span></dt>
|
||||
<dt><span class="section"><a href="classification.html#boost_functiontypes.reference.classification.is_nonmember_callable_builtin">
|
||||
is_nonmember_callable_builtin</a></span></dt>
|
||||
<dt><span class="section"><a href="classification.html#boost_functiontypes.reference.classification.is_function">is_function</a></span></dt>
|
||||
<dt><span class="section"><a href="classification.html#boost_functiontypes.reference.classification.is_function_pointer">is_function_pointer</a></span></dt>
|
||||
<dt><span class="section"><a href="classification.html#boost_functiontypes.reference.classification.is_function_reference">is_function_reference</a></span></dt>
|
||||
<dt><span class="section"><a href="classification.html#boost_functiontypes.reference.classification.is_member_pointer">is_member_pointer</a></span></dt>
|
||||
<dt><span class="section"><a href="classification.html#boost_functiontypes.reference.classification.is_member_object_pointer">is_member_object_pointer</a></span></dt>
|
||||
<dt><span class="section"><a href="classification.html#boost_functiontypes.reference.classification.is_member_function_pointer">is_member_function_pointer</a></span></dt>
|
||||
<dt><span class="section"><a href="classification.html#boost_functiontypes.reference.classification.is_callable_builtin">is_callable_builtin</a></span></dt>
|
||||
<dt><span class="section"><a href="classification.html#boost_functiontypes.reference.classification.is_nonmember_callable_builtin">is_nonmember_callable_builtin</a></span></dt>
|
||||
</dl></div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.classification.is_function"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_function" title="is_function">
|
||||
is_function</a>
|
||||
<a name="boost_functiontypes.reference.classification.is_function"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_function" title="is_function">is_function</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">></span>
|
||||
<span class="keyword">struct</span> <span class="identifier">is_function</span><span class="special">;</span>
|
||||
@ -88,8 +79,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.classification.is_function_pointer"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_function_pointer" title="is_function_pointer">
|
||||
is_function_pointer</a>
|
||||
<a name="boost_functiontypes.reference.classification.is_function_pointer"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_function_pointer" title="is_function_pointer">is_function_pointer</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">></span>
|
||||
<span class="keyword">struct</span> <span class="identifier">is_function_pointer</span><span class="special">;</span>
|
||||
@ -129,8 +119,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.classification.is_function_reference"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_function_reference" title="is_function_reference">
|
||||
is_function_reference</a>
|
||||
<a name="boost_functiontypes.reference.classification.is_function_reference"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_function_reference" title="is_function_reference">is_function_reference</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">></span>
|
||||
<span class="keyword">struct</span> <span class="identifier">is_function_reference</span><span class="special">;</span>
|
||||
@ -170,8 +159,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.classification.is_member_pointer"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_member_pointer" title="is_member_pointer">
|
||||
is_member_pointer</a>
|
||||
<a name="boost_functiontypes.reference.classification.is_member_pointer"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_member_pointer" title="is_member_pointer">is_member_pointer</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">></span>
|
||||
<span class="keyword">struct</span> <span class="identifier">is_member_pointer</span><span class="special">;</span>
|
||||
@ -211,8 +199,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.classification.is_member_object_pointer"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_member_object_pointer" title="is_member_object_pointer">
|
||||
is_member_object_pointer</a>
|
||||
<a name="boost_functiontypes.reference.classification.is_member_object_pointer"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_member_object_pointer" title="is_member_object_pointer">is_member_object_pointer</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
|
||||
<span class="keyword">struct</span> <span class="identifier">is_member_object_pointer</span><span class="special">;</span>
|
||||
@ -247,8 +234,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.classification.is_member_function_pointer"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_member_function_pointer" title="is_member_function_pointer">
|
||||
is_member_function_pointer</a>
|
||||
<a name="boost_functiontypes.reference.classification.is_member_function_pointer"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_member_function_pointer" title="is_member_function_pointer">is_member_function_pointer</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">></span>
|
||||
<span class="keyword">struct</span> <span class="identifier">is_member_function_pointer</span><span class="special">;</span>
|
||||
@ -288,8 +274,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.classification.is_callable_builtin"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_callable_builtin" title="is_callable_builtin">
|
||||
is_callable_builtin</a>
|
||||
<a name="boost_functiontypes.reference.classification.is_callable_builtin"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_callable_builtin" title="is_callable_builtin">is_callable_builtin</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">></span>
|
||||
<span class="keyword">struct</span> <span class="identifier">is_callable_builtin</span><span class="special">;</span>
|
||||
@ -329,8 +314,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.classification.is_nonmember_callable_builtin"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_nonmember_callable_builtin" title="is_nonmember_callable_builtin">
|
||||
is_nonmember_callable_builtin</a>
|
||||
<a name="boost_functiontypes.reference.classification.is_nonmember_callable_builtin"></a><a class="link" href="classification.html#boost_functiontypes.reference.classification.is_nonmember_callable_builtin" title="is_nonmember_callable_builtin">is_nonmember_callable_builtin</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">></span>
|
||||
<span class="keyword">struct</span> <span class="identifier">is_nonmember_callable_builtin</span><span class="special">;</span>
|
||||
@ -372,7 +356,8 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Tobias Schwinger<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004-2007 Tobias
|
||||
Schwinger<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Class templates for type decomposition</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="classification.html" title="Class templates for type classification">
|
||||
@ -24,23 +24,18 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_functiontypes.reference.decomposition"></a><a class="link" href="decomposition.html" title="Class templates for type decomposition"> Class templates
|
||||
<a name="boost_functiontypes.reference.decomposition"></a><a class="link" href="decomposition.html" title="Class templates for type decomposition">Class templates
|
||||
for type decomposition</a>
|
||||
</h3></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="decomposition.html#boost_functiontypes.reference.decomposition.result_type">
|
||||
result_type</a></span></dt>
|
||||
<dt><span class="section"><a href="decomposition.html#boost_functiontypes.reference.decomposition.parameter_types">
|
||||
parameter_types</a></span></dt>
|
||||
<dt><span class="section"><a href="decomposition.html#boost_functiontypes.reference.decomposition.function_arity">
|
||||
function_arity</a></span></dt>
|
||||
<dt><span class="section"><a href="decomposition.html#boost_functiontypes.reference.decomposition.components">
|
||||
components</a></span></dt>
|
||||
<dt><span class="section"><a href="decomposition.html#boost_functiontypes.reference.decomposition.result_type">result_type</a></span></dt>
|
||||
<dt><span class="section"><a href="decomposition.html#boost_functiontypes.reference.decomposition.parameter_types">parameter_types</a></span></dt>
|
||||
<dt><span class="section"><a href="decomposition.html#boost_functiontypes.reference.decomposition.function_arity">function_arity</a></span></dt>
|
||||
<dt><span class="section"><a href="decomposition.html#boost_functiontypes.reference.decomposition.components">components</a></span></dt>
|
||||
</dl></div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.decomposition.result_type"></a><a class="link" href="decomposition.html#boost_functiontypes.reference.decomposition.result_type" title="result_type">
|
||||
result_type</a>
|
||||
<a name="boost_functiontypes.reference.decomposition.result_type"></a><a class="link" href="decomposition.html#boost_functiontypes.reference.decomposition.result_type" title="result_type">result_type</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
|
||||
<span class="keyword">struct</span> <span class="identifier">result_type</span><span class="special">;</span>
|
||||
@ -73,8 +68,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.decomposition.parameter_types"></a><a class="link" href="decomposition.html#boost_functiontypes.reference.decomposition.parameter_types" title="parameter_types">
|
||||
parameter_types</a>
|
||||
<a name="boost_functiontypes.reference.decomposition.parameter_types"></a><a class="link" href="decomposition.html#boost_functiontypes.reference.decomposition.parameter_types" title="parameter_types">parameter_types</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ClassTransform</span> <span class="special">=</span> <span class="identifier">add_reference</span><span class="special"><</span><span class="identifier">_</span><span class="special">></span> <span class="special">></span>
|
||||
<span class="keyword">struct</span> <span class="identifier">parameter_types</span><span class="special">;</span>
|
||||
@ -117,8 +111,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.decomposition.function_arity"></a><a class="link" href="decomposition.html#boost_functiontypes.reference.decomposition.function_arity" title="function_arity">
|
||||
function_arity</a>
|
||||
<a name="boost_functiontypes.reference.decomposition.function_arity"></a><a class="link" href="decomposition.html#boost_functiontypes.reference.decomposition.function_arity" title="function_arity">function_arity</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">F</span><span class="special">></span>
|
||||
<span class="keyword">struct</span> <span class="identifier">function_arity</span><span class="special">;</span>
|
||||
@ -160,8 +153,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.decomposition.components"></a><a class="link" href="decomposition.html#boost_functiontypes.reference.decomposition.components" title="components">
|
||||
components</a>
|
||||
<a name="boost_functiontypes.reference.decomposition.components"></a><a class="link" href="decomposition.html#boost_functiontypes.reference.decomposition.components" title="components">components</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ClassTransform</span> <span class="special">=</span> <span class="identifier">add_reference</span><span class="special"><</span><span class="identifier">_</span><span class="special">></span> <span class="special">></span>
|
||||
<span class="keyword">struct</span> <span class="identifier">components</span><span class="special">;</span>
|
||||
@ -211,7 +203,8 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Tobias Schwinger<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004-2007 Tobias
|
||||
Schwinger<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Macros</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="tag_types.html" title="Tag Types">
|
||||
@ -24,32 +24,22 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_functiontypes.reference.macros"></a><a class="link" href="macros.html" title="Macros"> Macros</a>
|
||||
<a name="boost_functiontypes.reference.macros"></a><a class="link" href="macros.html" title="Macros">Macros</a>
|
||||
</h3></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_MAX_ARITY">
|
||||
BOOST_FT_MAX_ARITY</a></span></dt>
|
||||
<dt><span class="section"><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES">
|
||||
BOOST_FT_CC_NAMES</a></span></dt>
|
||||
<dt><span class="section"><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC">
|
||||
BOOST_FT_CC_*</a></span></dt>
|
||||
<dt><span class="section"><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_COMMON_X86_CCs">
|
||||
BOOST_FT_COMMON_X86_CCs</a></span></dt>
|
||||
<dt><span class="section"><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_SYNTAX">
|
||||
BOOST_FT_SYNTAX</a></span></dt>
|
||||
<dt><span class="section"><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_NULLARY_PARAM">
|
||||
BOOST_FT_NULLARY_PARAM</a></span></dt>
|
||||
<dt><span class="section"><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_NO_CV_FUNC_SUPPORT">
|
||||
BOOST_FT_NO_CV_FUNC_SUPPORT</a></span></dt>
|
||||
<dt><span class="section"><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_PREPROCESSING_MODE">
|
||||
BOOST_FT_PREPROCESSING_MODE</a></span></dt>
|
||||
<dt><span class="section"><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_PREPROCESSING">
|
||||
BOOST_FT_CC_PREPROCESSING</a></span></dt>
|
||||
<dt><span class="section"><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_MAX_ARITY">BOOST_FT_MAX_ARITY</a></span></dt>
|
||||
<dt><span class="section"><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES">BOOST_FT_CC_NAMES</a></span></dt>
|
||||
<dt><span class="section"><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC">BOOST_FT_CC_*</a></span></dt>
|
||||
<dt><span class="section"><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_COMMON_X86_CCs">BOOST_FT_COMMON_X86_CCs</a></span></dt>
|
||||
<dt><span class="section"><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_SYNTAX">BOOST_FT_SYNTAX</a></span></dt>
|
||||
<dt><span class="section"><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_NULLARY_PARAM">BOOST_FT_NULLARY_PARAM</a></span></dt>
|
||||
<dt><span class="section"><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_NO_CV_FUNC_SUPPORT">BOOST_FT_NO_CV_FUNC_SUPPORT</a></span></dt>
|
||||
<dt><span class="section"><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_PREPROCESSING_MODE">BOOST_FT_PREPROCESSING_MODE</a></span></dt>
|
||||
<dt><span class="section"><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_PREPROCESSING">BOOST_FT_CC_PREPROCESSING</a></span></dt>
|
||||
</dl></div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_MAX_ARITY"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_MAX_ARITY" title="BOOST_FT_MAX_ARITY">
|
||||
BOOST_FT_MAX_ARITY</a>
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_MAX_ARITY"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_MAX_ARITY" title="BOOST_FT_MAX_ARITY">BOOST_FT_MAX_ARITY</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
Expands to a numeric value that describes the maximum function arity supported
|
||||
@ -67,8 +57,7 @@
|
||||
</p>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES" title="BOOST_FT_CC_NAMES">
|
||||
BOOST_FT_CC_NAMES</a>
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES" title="BOOST_FT_CC_NAMES">BOOST_FT_CC_NAMES</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
Expands to a <a href="../../../../../preprocessor/doc/data/sequences.html" target="_top">sequence</a>
|
||||
@ -105,8 +94,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_CC"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC" title="BOOST_FT_CC_*">
|
||||
BOOST_FT_CC_*</a>
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_CC"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC" title="BOOST_FT_CC_*">BOOST_FT_CC_*</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
Enables a specific calling convention. * denotes the macro suffix, as defined
|
||||
@ -145,8 +133,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_COMMON_X86_CCs"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_COMMON_X86_CCs" title="BOOST_FT_COMMON_X86_CCs">
|
||||
BOOST_FT_COMMON_X86_CCs</a>
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_COMMON_X86_CCs"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_COMMON_X86_CCs" title="BOOST_FT_COMMON_X86_CCs">BOOST_FT_COMMON_X86_CCs</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
Defining this macro causes the following macros to be defined, if not defined
|
||||
@ -159,8 +146,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_SYNTAX"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_SYNTAX" title="BOOST_FT_SYNTAX">
|
||||
BOOST_FT_SYNTAX</a>
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_SYNTAX"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_SYNTAX" title="BOOST_FT_SYNTAX">BOOST_FT_SYNTAX</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
This macro allows to change the syntax of callable builtin types. It is
|
||||
@ -176,8 +162,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_NULLARY_PARAM"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_NULLARY_PARAM" title="BOOST_FT_NULLARY_PARAM">
|
||||
BOOST_FT_NULLARY_PARAM</a>
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_NULLARY_PARAM"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_NULLARY_PARAM" title="BOOST_FT_NULLARY_PARAM">BOOST_FT_NULLARY_PARAM</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
Set to <code class="literal">void</code> for compilers that insist on a <code class="literal">void</code>
|
||||
@ -186,8 +171,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_NO_CV_FUNC_SUPPORT"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_NO_CV_FUNC_SUPPORT" title="BOOST_FT_NO_CV_FUNC_SUPPORT">
|
||||
BOOST_FT_NO_CV_FUNC_SUPPORT</a>
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_NO_CV_FUNC_SUPPORT"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_NO_CV_FUNC_SUPPORT" title="BOOST_FT_NO_CV_FUNC_SUPPORT">BOOST_FT_NO_CV_FUNC_SUPPORT</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
Disables support for cv-qualified function types. Cv-qualified function
|
||||
@ -203,8 +187,7 @@
|
||||
</p>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_PREPROCESSING_MODE"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_PREPROCESSING_MODE" title="BOOST_FT_PREPROCESSING_MODE">
|
||||
BOOST_FT_PREPROCESSING_MODE</a>
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_PREPROCESSING_MODE"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_PREPROCESSING_MODE" title="BOOST_FT_PREPROCESSING_MODE">BOOST_FT_PREPROCESSING_MODE</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
Makes the compiler preprocess as much as possible of the library code (rather
|
||||
@ -213,8 +196,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_CC_PREPROCESSING"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_PREPROCESSING" title="BOOST_FT_CC_PREPROCESSING">
|
||||
BOOST_FT_CC_PREPROCESSING</a>
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_CC_PREPROCESSING"></a><a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_PREPROCESSING" title="BOOST_FT_CC_PREPROCESSING">BOOST_FT_CC_PREPROCESSING</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
Makes the compiler preprocess the loop over possible names for custom calling
|
||||
@ -229,7 +211,8 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Tobias Schwinger<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004-2007 Tobias
|
||||
Schwinger<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Class templates for type synthesis</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="decomposition.html" title="Class templates for type decomposition">
|
||||
@ -24,23 +24,18 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_functiontypes.reference.synthesis"></a><a class="link" href="synthesis.html" title="Class templates for type synthesis"> Class templates
|
||||
<a name="boost_functiontypes.reference.synthesis"></a><a class="link" href="synthesis.html" title="Class templates for type synthesis">Class templates
|
||||
for type synthesis</a>
|
||||
</h3></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="synthesis.html#boost_functiontypes.reference.synthesis.function_type">
|
||||
function_type</a></span></dt>
|
||||
<dt><span class="section"><a href="synthesis.html#boost_functiontypes.reference.synthesis.function_pointer">
|
||||
function_pointer</a></span></dt>
|
||||
<dt><span class="section"><a href="synthesis.html#boost_functiontypes.reference.synthesis.function_reference">
|
||||
function_reference</a></span></dt>
|
||||
<dt><span class="section"><a href="synthesis.html#boost_functiontypes.reference.synthesis.member_function_pointer">
|
||||
member_function_pointer</a></span></dt>
|
||||
<dt><span class="section"><a href="synthesis.html#boost_functiontypes.reference.synthesis.function_type">function_type</a></span></dt>
|
||||
<dt><span class="section"><a href="synthesis.html#boost_functiontypes.reference.synthesis.function_pointer">function_pointer</a></span></dt>
|
||||
<dt><span class="section"><a href="synthesis.html#boost_functiontypes.reference.synthesis.function_reference">function_reference</a></span></dt>
|
||||
<dt><span class="section"><a href="synthesis.html#boost_functiontypes.reference.synthesis.member_function_pointer">member_function_pointer</a></span></dt>
|
||||
</dl></div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.synthesis.function_type"></a><a class="link" href="synthesis.html#boost_functiontypes.reference.synthesis.function_type" title="function_type">
|
||||
function_type</a>
|
||||
<a name="boost_functiontypes.reference.synthesis.function_type"></a><a class="link" href="synthesis.html#boost_functiontypes.reference.synthesis.function_type" title="function_type">function_type</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Types</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">></span>
|
||||
<span class="keyword">struct</span> <span class="identifier">function_type</span><span class="special">;</span>
|
||||
@ -79,8 +74,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.synthesis.function_pointer"></a><a class="link" href="synthesis.html#boost_functiontypes.reference.synthesis.function_pointer" title="function_pointer">
|
||||
function_pointer</a>
|
||||
<a name="boost_functiontypes.reference.synthesis.function_pointer"></a><a class="link" href="synthesis.html#boost_functiontypes.reference.synthesis.function_pointer" title="function_pointer">function_pointer</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Types</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">></span>
|
||||
<span class="keyword">struct</span> <span class="identifier">function_pointer</span><span class="special">;</span>
|
||||
@ -119,8 +113,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.synthesis.function_reference"></a><a class="link" href="synthesis.html#boost_functiontypes.reference.synthesis.function_reference" title="function_reference">
|
||||
function_reference</a>
|
||||
<a name="boost_functiontypes.reference.synthesis.function_reference"></a><a class="link" href="synthesis.html#boost_functiontypes.reference.synthesis.function_reference" title="function_reference">function_reference</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Types</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">></span>
|
||||
<span class="keyword">struct</span> <span class="identifier">function_reference</span><span class="special">;</span>
|
||||
@ -159,8 +152,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.synthesis.member_function_pointer"></a><a class="link" href="synthesis.html#boost_functiontypes.reference.synthesis.member_function_pointer" title="member_function_pointer">
|
||||
member_function_pointer</a>
|
||||
<a name="boost_functiontypes.reference.synthesis.member_function_pointer"></a><a class="link" href="synthesis.html#boost_functiontypes.reference.synthesis.member_function_pointer" title="member_function_pointer">member_function_pointer</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Types</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a><span class="special">></span>
|
||||
<span class="keyword">struct</span> <span class="identifier">member_function_pointer</span><span class="special">;</span>
|
||||
@ -206,7 +198,8 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Tobias Schwinger<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004-2007 Tobias
|
||||
Schwinger<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Tag Types</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="synthesis.html" title="Class templates for type synthesis">
|
||||
@ -24,38 +24,26 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types"></a><a class="link" href="tag_types.html" title="Tag Types"> Tag Types</a>
|
||||
<a name="boost_functiontypes.reference.tag_types"></a><a class="link" href="tag_types.html" title="Tag Types">Tag Types</a>
|
||||
</h3></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.variadic">
|
||||
variadic</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.non_variadic">
|
||||
non_variadic</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.default_cc">
|
||||
default_cc</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.const_qualified">
|
||||
const_qualified</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.non_const">
|
||||
non_const</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.volatile_qualified">
|
||||
volatile_qualified</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.non_volatile">
|
||||
non_volatile</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.non_cv"> non_cv</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.const_non_volatile">
|
||||
const_non_volatile</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.volatile_non_const">
|
||||
volatile_non_const</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.cv_qualfied">
|
||||
cv_qualfied</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag">
|
||||
null_tag</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.tag"> tag</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.variadic">variadic</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.non_variadic">non_variadic</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.default_cc">default_cc</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.const_qualified">const_qualified</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.non_const">non_const</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.volatile_qualified">volatile_qualified</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.non_volatile">non_volatile</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.non_cv">non_cv</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.const_non_volatile">const_non_volatile</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.volatile_non_const">volatile_non_const</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.cv_qualfied">cv_qualfied</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag">null_tag</a></span></dt>
|
||||
<dt><span class="section"><a href="tag_types.html#boost_functiontypes.reference.tag_types.tag">tag</a></span></dt>
|
||||
</dl></div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.variadic"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.variadic" title="variadic">
|
||||
variadic</a>
|
||||
<a name="boost_functiontypes.reference.tag_types.variadic"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.variadic" title="variadic">variadic</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">variadic</span><span class="special">;</span>
|
||||
</pre>
|
||||
@ -71,8 +59,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.non_variadic"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.non_variadic" title="non_variadic">
|
||||
non_variadic</a>
|
||||
<a name="boost_functiontypes.reference.tag_types.non_variadic"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.non_variadic" title="non_variadic">non_variadic</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">non_variadic</span><span class="special">;</span>
|
||||
</pre>
|
||||
@ -87,8 +74,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.default_cc"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.default_cc" title="default_cc">
|
||||
default_cc</a>
|
||||
<a name="boost_functiontypes.reference.tag_types.default_cc"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.default_cc" title="default_cc">default_cc</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">default_cc</span><span class="special">;</span>
|
||||
</pre>
|
||||
@ -103,8 +89,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.const_qualified"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.const_qualified" title="const_qualified">
|
||||
const_qualified</a>
|
||||
<a name="boost_functiontypes.reference.tag_types.const_qualified"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.const_qualified" title="const_qualified">const_qualified</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">const_qualified</span><span class="special">;</span>
|
||||
</pre>
|
||||
@ -119,8 +104,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.non_const"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.non_const" title="non_const">
|
||||
non_const</a>
|
||||
<a name="boost_functiontypes.reference.tag_types.non_const"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.non_const" title="non_const">non_const</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">non_const</span><span class="special">;</span>
|
||||
</pre>
|
||||
@ -135,8 +119,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.volatile_qualified"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.volatile_qualified" title="volatile_qualified">
|
||||
volatile_qualified</a>
|
||||
<a name="boost_functiontypes.reference.tag_types.volatile_qualified"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.volatile_qualified" title="volatile_qualified">volatile_qualified</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">volatile_qualified</span><span class="special">;</span>
|
||||
</pre>
|
||||
@ -151,8 +134,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.non_volatile"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.non_volatile" title="non_volatile">
|
||||
non_volatile</a>
|
||||
<a name="boost_functiontypes.reference.tag_types.non_volatile"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.non_volatile" title="non_volatile">non_volatile</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">non_volatile</span><span class="special">;</span>
|
||||
</pre>
|
||||
@ -167,7 +149,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.non_cv"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.non_cv" title="non_cv"> non_cv</a>
|
||||
<a name="boost_functiontypes.reference.tag_types.non_cv"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.non_cv" title="non_cv">non_cv</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">non_cv</span><span class="special">;</span>
|
||||
</pre>
|
||||
@ -184,8 +166,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.const_non_volatile"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.const_non_volatile" title="const_non_volatile">
|
||||
const_non_volatile</a>
|
||||
<a name="boost_functiontypes.reference.tag_types.const_non_volatile"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.const_non_volatile" title="const_non_volatile">const_non_volatile</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">const_non_volatile</span><span class="special">;</span>
|
||||
</pre>
|
||||
@ -202,8 +183,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.volatile_non_const"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.volatile_non_const" title="volatile_non_const">
|
||||
volatile_non_const</a>
|
||||
<a name="boost_functiontypes.reference.tag_types.volatile_non_const"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.volatile_non_const" title="volatile_non_const">volatile_non_const</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">volatile_non_const</span><span class="special">;</span>
|
||||
</pre>
|
||||
@ -220,8 +200,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.cv_qualfied"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.cv_qualfied" title="cv_qualfied">
|
||||
cv_qualfied</a>
|
||||
<a name="boost_functiontypes.reference.tag_types.cv_qualfied"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.cv_qualfied" title="cv_qualfied">cv_qualfied</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">cv_qualified</span><span class="special">;</span>
|
||||
</pre>
|
||||
@ -238,8 +217,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.null_tag"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">
|
||||
null_tag</a>
|
||||
<a name="boost_functiontypes.reference.tag_types.null_tag"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">typedef</span> <span class="emphasis"><em>unspecified</em></span> <span class="identifier">null_tag</span><span class="special">;</span>
|
||||
</pre>
|
||||
@ -254,7 +232,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.tag"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.tag" title="tag"> tag</a>
|
||||
<a name="boost_functiontypes.reference.tag_types.tag"></a><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.tag" title="tag">tag</a>
|
||||
</h4></div></div></div>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Tag1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tag2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Tag3</span> <span class="special">=</span> <span class="identifier">null_tag</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Tag4</span> <span class="special">=</span> <span class="identifier">null_tag</span><span class="special">></span>
|
||||
@ -286,7 +264,8 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Tobias Schwinger<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004-2007 Tobias
|
||||
Schwinger<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Use Cases</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
|
||||
<link rel="prev" href="introduction.html" title="Introduction">
|
||||
@ -24,7 +24,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_functiontypes.use_cases"></a><a class="link" href="use_cases.html" title="Use Cases"> Use Cases</a>
|
||||
<a name="boost_functiontypes.use_cases"></a><a class="link" href="use_cases.html" title="Use Cases">Use Cases</a>
|
||||
</h2></div></div></div>
|
||||
<p>
|
||||
Generic libraries that accept callable arguments are common in C++. Accepting
|
||||
@ -160,7 +160,8 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004 -2007 Tobias Schwinger<p>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2004-2007 Tobias
|
||||
Schwinger<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -3,7 +3,7 @@
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Chapter 1. Boost.FunctionTypes 2.5</title>
|
||||
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
|
||||
<link rel="home" href="index.html" title="Chapter 1. Boost.FunctionTypes 2.5">
|
||||
<link rel="next" href="boost_functiontypes/introduction.html" title="Introduction">
|
||||
</head>
|
||||
@ -25,9 +25,10 @@
|
||||
<div><div class="author"><h3 class="author">
|
||||
<span class="firstname">Tobias</span> <span class="surname">Schwinger</span>
|
||||
</h3></div></div>
|
||||
<div><p class="copyright">Copyright © 2004 -2007 Tobias Schwinger</p></div>
|
||||
<div><p class="copyright">Copyright © 2004-2007 Tobias
|
||||
Schwinger</p></div>
|
||||
<div><div class="legalnotice">
|
||||
<a name="id759690"></a><p>
|
||||
<a name="id768638"></a><p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
@ -36,17 +37,17 @@
|
||||
<div class="toc">
|
||||
<p><b>Table of Contents</b></p>
|
||||
<dl>
|
||||
<dt><span class="section"><a href="boost_functiontypes/introduction.html"> Introduction</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_functiontypes/use_cases.html"> Use Cases</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_functiontypes/about_tag_types.html"> About Tag Types</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_functiontypes/reference.html"> Reference</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_functiontypes/rationale.html"> Rationale</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_functiontypes/acknowledgements.html"> Acknowledgements</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_functiontypes/introduction.html">Introduction</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_functiontypes/use_cases.html">Use Cases</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_functiontypes/about_tag_types.html">About Tag Types</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_functiontypes/reference.html">Reference</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_functiontypes/rationale.html">Rationale</a></span></dt>
|
||||
<dt><span class="section"><a href="boost_functiontypes/acknowledgements.html">Acknowledgements</a></span></dt>
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"><p><small>Last revised: , at </small></p></td>
|
||||
<td align="left"><p><small>Last revised: April 09, 2008 at 18:26:31 +0100</small></p></td>
|
||||
<td align="right"><div class="copyright-footer"></div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
|
@ -62,7 +62,7 @@
|
||||
// ============
|
||||
//
|
||||
// [Dimov1] Dimov, P., Hinnant H., Abrahams, D. The Forwarding Problem
|
||||
// http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2002/n1385.htm
|
||||
// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2002/n1385.htm
|
||||
//
|
||||
// [Dimov2] Dimov, P. Documentation of boost::mem_fn
|
||||
// http://www.boost.org/libs/bind/mem_fn.html
|
||||
|
@ -26,7 +26,7 @@
|
||||
//
|
||||
// [Gregor02] Gregor, D. A uniform method for computing function object return
|
||||
// types (revision 1)
|
||||
// http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1454.html
|
||||
// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1454.html
|
||||
|
||||
#include <boost/function_types/result_type.hpp>
|
||||
#include <boost/function_types/is_callable_builtin.hpp>
|
||||
@ -57,7 +57,7 @@ namespace example
|
||||
typedef typename F::template result<Desc>::type type;
|
||||
};
|
||||
|
||||
#if !BOOST_WORKAROUND(__BORLANDC__,BOOST_TESTED_AT(0x564))
|
||||
#if !BOOST_WORKAROUND(BOOST_BORLANDC,BOOST_TESTED_AT(0x564))
|
||||
template<typename F>
|
||||
struct result_member_template< F, F(void) >
|
||||
{
|
||||
|
@ -15,7 +15,6 @@
|
||||
|
||||
#include <boost/detail/workaround.hpp>
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/type_traits/integral_constant.hpp>
|
||||
|
||||
@ -23,7 +22,7 @@
|
||||
#include <boost/mpl/integral_c.hpp>
|
||||
#include <boost/mpl/vector/vector0.hpp>
|
||||
|
||||
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x656))
|
||||
#if BOOST_WORKAROUND(BOOST_BORLANDC, <= 0x565)
|
||||
# include <boost/type_traits/remove_cv.hpp>
|
||||
|
||||
# include <boost/mpl/identity.hpp>
|
||||
@ -47,7 +46,6 @@
|
||||
|
||||
#include <boost/function_types/config/config.hpp>
|
||||
|
||||
#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||
# if BOOST_FT_MAX_ARITY < 10
|
||||
# include <boost/mpl/vector/vector10.hpp>
|
||||
# elif BOOST_FT_MAX_ARITY < 20
|
||||
@ -59,9 +57,6 @@
|
||||
# elif BOOST_FT_MAX_ARITY < 50
|
||||
# include <boost/mpl/vector/vector50.hpp>
|
||||
# endif
|
||||
#else
|
||||
# include <boost/function_types/detail/classifier.hpp>
|
||||
#endif
|
||||
|
||||
#include <boost/function_types/detail/class_transform.hpp>
|
||||
#include <boost/function_types/property_tags.hpp>
|
||||
@ -81,14 +76,14 @@ namespace boost
|
||||
namespace detail
|
||||
{
|
||||
template<typename T, typename L> struct components_impl;
|
||||
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x565))
|
||||
#if BOOST_WORKAROUND(BOOST_BORLANDC, <= 0x565)
|
||||
template<typename T, typename OrigT, typename L> struct components_bcc;
|
||||
#endif
|
||||
}
|
||||
|
||||
template<typename T, typename ClassTypeTransform>
|
||||
struct components
|
||||
#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x565))
|
||||
#if !BOOST_WORKAROUND(BOOST_BORLANDC, <= 0x565)
|
||||
: detail::components_impl<T, ClassTypeTransform>
|
||||
#else
|
||||
: detail::components_bcc<typename remove_cv<T>::type,T,
|
||||
@ -260,7 +255,7 @@ namespace boost
|
||||
typename detail::class_transform<C,L>::type > types;
|
||||
};
|
||||
|
||||
#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x565))
|
||||
#if !BOOST_WORKAROUND(BOOST_BORLANDC, <= 0x565)
|
||||
# define BOOST_FT_variations BOOST_FT_pointer|BOOST_FT_member_pointer
|
||||
|
||||
template<typename T, class C, typename L>
|
||||
@ -420,8 +415,6 @@ namespace boost
|
||||
|
||||
} } // namespace function_types::detail
|
||||
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::components)
|
||||
|
||||
} // namespace ::boost
|
||||
|
||||
#include <boost/function_types/detail/components_as_mpl_sequence.hpp>
|
||||
|
@ -91,11 +91,11 @@
|
||||
# define __fastcall __attribute__((__fastcall__))
|
||||
# endif
|
||||
|
||||
#elif defined(__BORLANDC__)
|
||||
#elif defined(BOOST_BORLANDC)
|
||||
|
||||
# if __BORLANDC__ < 0x550
|
||||
# if BOOST_BORLANDC < 0x550
|
||||
# error "unsupported compiler version"
|
||||
# elif __BORLANDC__ > 0x565
|
||||
# elif BOOST_BORLANDC > 0x565
|
||||
# pragma message("WARNING: library untested with this compiler version")
|
||||
# endif
|
||||
|
||||
|
@ -28,7 +28,6 @@ struct class_transform
|
||||
{ typedef typename mpl::apply1<L,T>::type type; };
|
||||
|
||||
|
||||
#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||
// We can short-circuit the mechanism implemented in the primary template for
|
||||
// the most common lambda expression and save both the "un-lambdaing" and the
|
||||
// type traits invocation (we know that T can only be a class type).
|
||||
@ -53,7 +52,6 @@ template<typename T> struct class_transform< T, add_pointer< remove_cv<_> > >
|
||||
|
||||
template<typename T, typename U> struct class_transform< T, mpl::always<U> >
|
||||
{ typedef U type; };
|
||||
#endif
|
||||
|
||||
|
||||
} } } // namespace ::boost::function_types::detail
|
||||
|
@ -11,7 +11,6 @@
|
||||
|
||||
#include <boost/type.hpp>
|
||||
#include <boost/config.hpp>
|
||||
#include <boost/type_traits/config.hpp>
|
||||
#include <boost/type_traits/is_reference.hpp>
|
||||
#include <boost/type_traits/add_reference.hpp>
|
||||
|
||||
@ -31,7 +30,13 @@ template<bits_t Flags, bits_t CCID, std::size_t Arity> struct encode_charr
|
||||
>::type type;
|
||||
};
|
||||
|
||||
char BOOST_TT_DECL classifier_impl(...);
|
||||
#if defined(BOOST_MSVC) || (defined(BOOST_BORLANDC) && !defined(BOOST_DISABLE_WIN32))
|
||||
# define BOOST_FT_DECL __cdecl
|
||||
#else
|
||||
# define BOOST_FT_DECL /**/
|
||||
#endif
|
||||
|
||||
char BOOST_FT_DECL classifier_impl(...);
|
||||
|
||||
#define BOOST_FT_variations BOOST_FT_function|BOOST_FT_pointer|\
|
||||
BOOST_FT_member_pointer
|
||||
|
@ -12,8 +12,7 @@
|
||||
#include <cstddef>
|
||||
#include <boost/detail/workaround.hpp>
|
||||
|
||||
#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
|
||||
|| BOOST_WORKAROUND(__BORLANDC__, <= 0x582)
|
||||
#if BOOST_WORKAROUND(BOOST_BORLANDC, <= 0x582)
|
||||
# include <boost/type_traits/remove_cv.hpp>
|
||||
# include <boost/type_traits/remove_pointer.hpp>
|
||||
# include <boost/type_traits/remove_reference.hpp>
|
||||
@ -23,8 +22,7 @@
|
||||
|
||||
namespace boost { namespace function_types { namespace detail {
|
||||
|
||||
#if ! (defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
|
||||
|| BOOST_WORKAROUND(__BORLANDC__, <= 0x582))
|
||||
#if !BOOST_WORKAROUND(BOOST_BORLANDC, <= 0x582)
|
||||
|
||||
template<typename T> struct cv_traits
|
||||
{ typedef non_cv tag; typedef T type; };
|
||||
|
@ -32,14 +32,12 @@ struct to_sequence
|
||||
type;
|
||||
};
|
||||
|
||||
#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||
// reduce template instantiations, if possible
|
||||
template<typename T, typename U>
|
||||
struct to_sequence< components<T,U> >
|
||||
{
|
||||
typedef typename components<T,U>::types type;
|
||||
};
|
||||
#endif
|
||||
|
||||
} } } // namespace ::boost::function_types::detail
|
||||
|
||||
|
@ -13,7 +13,6 @@
|
||||
#include <boost/mpl/if.hpp>
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/is_callable_builtin.hpp>
|
||||
#include <boost/function_types/components.hpp>
|
||||
@ -31,7 +30,6 @@ namespace boost
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(1,function_arity,(T))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,function_types::function_arity)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -10,7 +10,6 @@
|
||||
#define BOOST_FT_FUNCTION_POINTER_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/function_type.hpp>
|
||||
|
||||
@ -25,7 +24,6 @@ namespace boost
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,function_pointer,(Types,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::function_pointer)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -10,7 +10,6 @@
|
||||
#define BOOST_FT_FUNCTION_REFERENCE_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/function_type.hpp>
|
||||
|
||||
@ -25,7 +24,6 @@ namespace boost
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,function_reference,(Types,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::function_reference)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -22,7 +22,6 @@ namespace boost
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,function_type,(Types,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::function_type)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -10,7 +10,6 @@
|
||||
#define BOOST_FT_IS_CALLABLE_BUILTIN_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/components.hpp>
|
||||
|
||||
@ -28,7 +27,6 @@ namespace boost
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_callable_builtin,(T,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_callable_builtin)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -9,7 +9,6 @@
|
||||
#define BOOST_FT_IS_FUNCTION_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/components.hpp>
|
||||
|
||||
@ -27,7 +26,6 @@ namespace boost
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_function,(T,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_function)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -10,7 +10,6 @@
|
||||
#define BOOST_FT_IS_FUNCTION_POINTER_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/components.hpp>
|
||||
|
||||
@ -28,7 +27,6 @@ namespace boost
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_function_pointer,(T,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_function_pointer)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -10,7 +10,6 @@
|
||||
#define BOOST_FT_IS_FUNCTION_REFERENCE_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/components.hpp>
|
||||
|
||||
@ -27,7 +26,6 @@ namespace boost
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_function_reference,(T,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_function_reference)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -10,7 +10,6 @@
|
||||
#define BOOST_FT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/components.hpp>
|
||||
|
||||
@ -27,7 +26,6 @@ namespace boost
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_member_function_pointer,(T,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_member_function_pointer)
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -10,7 +10,6 @@
|
||||
#define BOOST_FT_IS_MEMBER_OBJECT_POINTER_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/components.hpp>
|
||||
|
||||
@ -27,7 +26,6 @@ namespace boost
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_member_object_pointer,(T))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,function_types::is_member_object_pointer)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -9,7 +9,6 @@
|
||||
#define BOOST_FT_IS_MEMBER_POINTER_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/components.hpp>
|
||||
|
||||
@ -27,7 +26,6 @@ namespace boost
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_member_pointer,(T,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_member_pointer)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -10,7 +10,6 @@
|
||||
#define BOOST_FT_IS_NONMEMBER_CALLABLE_BUILTIN_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/components.hpp>
|
||||
|
||||
@ -28,7 +27,6 @@ namespace boost
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_nonmember_callable_builtin,(T,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_nonmember_callable_builtin)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -10,7 +10,6 @@
|
||||
#define BOOST_FT_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/detail/synthesize.hpp>
|
||||
#include <boost/function_types/detail/to_sequence.hpp>
|
||||
@ -26,7 +25,6 @@ namespace boost
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,member_function_pointer,(Types,Tag))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::member_function_pointer)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -10,7 +10,6 @@
|
||||
#define BOOST_FT_MEMBER_OBJECT_POINTER_HPP_INCLUDED
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/function_types/detail/synthesize.hpp>
|
||||
#include <boost/function_types/detail/to_sequence.hpp>
|
||||
@ -26,7 +25,6 @@ namespace boost
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(1,member_object_pointer,(Types))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,function_types::member_object_pointer)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -13,7 +13,6 @@
|
||||
#include <boost/mpl/if.hpp>
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/mpl/pop_front.hpp>
|
||||
|
||||
@ -48,7 +47,6 @@ namespace boost
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,parameter_types,(T,ClassTypeTransform))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::parameter_types)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include <cstddef>
|
||||
|
||||
#include <boost/type_traits/integral_constant.hpp>
|
||||
#include <boost/type_traits/is_same.hpp>
|
||||
#include <boost/mpl/bitxor.hpp>
|
||||
|
||||
|
||||
@ -102,7 +103,6 @@ struct tag
|
||||
detail::compound_tag<Tag3,Tag4> >
|
||||
{ };
|
||||
|
||||
#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||
template<class Tag1, class Tag2, class Tag3> struct tag<Tag1,Tag2,Tag3,null_tag>
|
||||
: detail::compound_tag<detail::compound_tag<Tag1,Tag2>,Tag3>
|
||||
{ };
|
||||
@ -112,7 +112,6 @@ template<class Tag1, class Tag2> struct tag<Tag1,Tag2,null_tag,null_tag>
|
||||
template<class Tag1> struct tag<Tag1,null_tag,null_tag,null_tag>
|
||||
: Tag1
|
||||
{ };
|
||||
#endif
|
||||
|
||||
|
||||
template<class Tag, class QueryTag> struct represents
|
||||
@ -136,6 +135,20 @@ template<class Tag, class QueryTag> struct extract
|
||||
> mask;
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
The following is a metafunction which checks whether a
|
||||
property tag is in a possibly compounded tag type.
|
||||
|
||||
Here both the possibly compounded tag type and a property tag
|
||||
is given.
|
||||
|
||||
*/
|
||||
|
||||
template<class Tag, class PropertyTag> struct has_property_tag
|
||||
: detail::represents_impl<Tag, PropertyTag>
|
||||
{ };
|
||||
|
||||
} } // namespace ::boost::function_types
|
||||
|
||||
#include <boost/function_types/detail/pp_tags/preprocessed.hpp>
|
||||
@ -143,6 +156,43 @@ template<class Tag, class QueryTag> struct extract
|
||||
namespace boost { namespace function_types {
|
||||
#define BOOST_FT_cc_file <boost/function_types/detail/pp_tags/cc_tag.hpp>
|
||||
#include <boost/function_types/detail/pp_loop.hpp>
|
||||
|
||||
/*
|
||||
|
||||
The following are metafunctions which check whether the
|
||||
specific property tag is in a possibly compounded tag type.
|
||||
Here only the possibly compounded tag type is given.
|
||||
|
||||
*/
|
||||
|
||||
template<class Tag> struct has_property_tag<Tag,null_tag>
|
||||
: ::boost::is_same<Tag, null_tag>
|
||||
{ };
|
||||
|
||||
template<class Tag> struct has_variadic_property_tag
|
||||
: has_property_tag<Tag, variadic>
|
||||
{ };
|
||||
|
||||
template<class Tag> struct has_default_cc_property_tag
|
||||
: has_property_tag<Tag, default_cc>
|
||||
{ };
|
||||
|
||||
template<class Tag> struct has_const_property_tag
|
||||
: has_property_tag<Tag, const_qualified>
|
||||
{ };
|
||||
|
||||
template<class Tag> struct has_volatile_property_tag
|
||||
: has_property_tag<Tag, volatile_qualified>
|
||||
{ };
|
||||
|
||||
template<class Tag> struct has_cv_property_tag
|
||||
: has_property_tag<Tag, cv_qualified>
|
||||
{ };
|
||||
|
||||
template<class Tag> struct has_null_property_tag
|
||||
: has_property_tag<Tag, null_tag>
|
||||
{ };
|
||||
|
||||
} } // namespace boost::function_types
|
||||
|
||||
#endif
|
||||
|
@ -13,7 +13,6 @@
|
||||
#include <boost/mpl/if.hpp>
|
||||
|
||||
#include <boost/mpl/aux_/lambda_support.hpp>
|
||||
#include <boost/type_traits/detail/template_arity_spec.hpp>
|
||||
|
||||
#include <boost/mpl/at.hpp>
|
||||
|
||||
@ -43,7 +42,6 @@ namespace boost
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(1,result_type,(T))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,function_types::result_type)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
16
meta/libraries.json
Normal file
16
meta/libraries.json
Normal file
@ -0,0 +1,16 @@
|
||||
{
|
||||
"key": "function_types",
|
||||
"name": "Function Types",
|
||||
"authors": [
|
||||
"Tobias Schwinger"
|
||||
],
|
||||
"description": "Boost.FunctionTypes provides functionality to classify, decompose and synthesize function, function pointer, function reference and pointer to member types.",
|
||||
"category": [
|
||||
"Generic",
|
||||
"Metaprogramming"
|
||||
],
|
||||
"maintainers": [
|
||||
"Tobias Schwinger <tschwinger -at- isonews2.com>"
|
||||
],
|
||||
"cxxstd": "03"
|
||||
}
|
12
test/Jamfile
12
test/Jamfile
@ -64,11 +64,15 @@ import testing ;
|
||||
|
||||
# Custom calling conventions
|
||||
|
||||
[ compile custom_ccs/nonmember_ccs.cpp ]
|
||||
[ compile custom_ccs/nonmember_ccs_exact.cpp ]
|
||||
[ compile custom_ccs/member_ccs.cpp ]
|
||||
[ compile custom_ccs/member_ccs_exact.cpp ]
|
||||
[ compile custom_ccs/nonmember_ccs.cpp : <address-model>64:<build>no ]
|
||||
[ compile custom_ccs/nonmember_ccs_exact.cpp : <address-model>64:<build>no ]
|
||||
[ compile custom_ccs/member_ccs.cpp : <address-model>64:<build>no ]
|
||||
[ compile custom_ccs/member_ccs_exact.cpp : <address-model>64:<build>no ]
|
||||
|
||||
# Property tag
|
||||
|
||||
[ compile custom_ccs/property_tag.cpp ]
|
||||
|
||||
# Code from the examples
|
||||
|
||||
[ compile ../example/interpreter_example.cpp ]
|
||||
|
64
test/custom_ccs/property_tag.cpp
Normal file
64
test/custom_ccs/property_tag.cpp
Normal file
@ -0,0 +1,64 @@
|
||||
|
||||
// (C) Copyright Edward Diener 2019
|
||||
// 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).
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/function_types/property_tags.hpp>
|
||||
|
||||
namespace ft = boost::function_types;
|
||||
namespace mpl = boost::mpl;
|
||||
|
||||
typedef ft::tag<ft::variadic,ft::non_volatile,ft::non_const,ft::default_cc> tag1;
|
||||
typedef ft::tag<ft::const_non_volatile,ft::const_qualified> tag2;
|
||||
typedef ft::tag<ft::cv_qualified,ft::variadic> tag3;
|
||||
typedef ft::null_tag tag4;
|
||||
typedef ft::tag<ft::variadic,ft::volatile_non_const> tag5;
|
||||
typedef ft::tag<ft::volatile_qualified,ft::non_const,ft::variadic> tag6;
|
||||
typedef ft::tag<ft::non_variadic,ft::const_non_volatile,ft::default_cc> tag7;
|
||||
typedef ft::tag<ft::non_cv,ft::default_cc> tag8;
|
||||
|
||||
BOOST_MPL_ASSERT((ft::has_property_tag<tag1, ft::variadic>));
|
||||
BOOST_MPL_ASSERT((ft::has_property_tag<tag2, ft::const_qualified>));
|
||||
BOOST_MPL_ASSERT((ft::has_property_tag<tag3, ft::cv_qualified>));
|
||||
BOOST_MPL_ASSERT((ft::has_property_tag<tag4, ft::null_tag>));
|
||||
BOOST_MPL_ASSERT((ft::has_property_tag<tag5, ft::volatile_qualified>));
|
||||
BOOST_MPL_ASSERT((ft::has_property_tag<tag6, ft::volatile_qualified>));
|
||||
BOOST_MPL_ASSERT((ft::has_property_tag<tag7, ft::const_qualified>));
|
||||
BOOST_MPL_ASSERT((ft::has_property_tag<tag8, ft::default_cc>));
|
||||
|
||||
BOOST_MPL_ASSERT((ft::has_variadic_property_tag<tag1>));
|
||||
BOOST_MPL_ASSERT((ft::has_variadic_property_tag<tag3>));
|
||||
BOOST_MPL_ASSERT((ft::has_variadic_property_tag<tag5>));
|
||||
BOOST_MPL_ASSERT((ft::has_variadic_property_tag<tag6>));
|
||||
BOOST_MPL_ASSERT((ft::has_default_cc_property_tag<tag1>));
|
||||
BOOST_MPL_ASSERT((ft::has_default_cc_property_tag<tag7>));
|
||||
BOOST_MPL_ASSERT((ft::has_default_cc_property_tag<tag8>));
|
||||
BOOST_MPL_ASSERT((ft::has_const_property_tag<tag2>));
|
||||
BOOST_MPL_ASSERT((ft::has_const_property_tag<tag3>));
|
||||
BOOST_MPL_ASSERT((ft::has_const_property_tag<tag7>));
|
||||
BOOST_MPL_ASSERT((ft::has_volatile_property_tag<tag3>));
|
||||
BOOST_MPL_ASSERT((ft::has_volatile_property_tag<tag5>));
|
||||
BOOST_MPL_ASSERT((ft::has_volatile_property_tag<tag6>));
|
||||
BOOST_MPL_ASSERT((ft::has_cv_property_tag<tag3>));
|
||||
BOOST_MPL_ASSERT((ft::has_null_property_tag<tag4>));
|
||||
|
||||
BOOST_MPL_ASSERT_NOT((ft::has_property_tag<tag1, ft::const_qualified>));
|
||||
BOOST_MPL_ASSERT_NOT((ft::has_property_tag<tag2, ft::cv_qualified>));
|
||||
BOOST_MPL_ASSERT_NOT((ft::has_property_tag<tag3, ft::null_tag>));
|
||||
BOOST_MPL_ASSERT_NOT((ft::has_property_tag<tag4, ft::volatile_qualified>));
|
||||
BOOST_MPL_ASSERT_NOT((ft::has_property_tag<tag5, ft::const_qualified>));
|
||||
BOOST_MPL_ASSERT_NOT((ft::has_property_tag<tag6, ft::default_cc>));
|
||||
BOOST_MPL_ASSERT_NOT((ft::has_property_tag<tag7, ft::variadic>));
|
||||
BOOST_MPL_ASSERT_NOT((ft::has_property_tag<tag8, ft::volatile_qualified>));
|
||||
|
||||
BOOST_MPL_ASSERT_NOT((ft::has_variadic_property_tag<tag2>));
|
||||
BOOST_MPL_ASSERT_NOT((ft::has_default_cc_property_tag<tag6>));
|
||||
BOOST_MPL_ASSERT_NOT((ft::has_const_property_tag<tag4>));
|
||||
BOOST_MPL_ASSERT_NOT((ft::has_const_property_tag<tag5>));
|
||||
BOOST_MPL_ASSERT_NOT((ft::has_volatile_property_tag<tag7>));
|
||||
BOOST_MPL_ASSERT_NOT((ft::has_cv_property_tag<tag1>));
|
||||
BOOST_MPL_ASSERT_NOT((ft::has_null_property_tag<tag8>));
|
@ -16,12 +16,19 @@ namespace ft = boost::function_types;
|
||||
|
||||
class C;
|
||||
typedef C func();
|
||||
typedef C const c_func();
|
||||
typedef C (*func_ptr)();
|
||||
typedef C const (*c_func_ptr)();
|
||||
typedef C (&func_ref)();
|
||||
typedef C const (&c_func_ref)();
|
||||
typedef C (C::*mem_func_ptr)();
|
||||
typedef C (C::*c_mem_func_ptr)() const;
|
||||
typedef C (C::*v_mem_func_ptr)() volatile;
|
||||
typedef C (C::*cv_mem_func_ptr)() const volatile;
|
||||
typedef C const (C::*c_mem_func_ptr)();
|
||||
typedef C (C::*mem_func_ptr_c)() const;
|
||||
typedef C const (C::*c_mem_func_ptr_c)() const;
|
||||
typedef C (C::*mem_func_ptr_v)() volatile;
|
||||
typedef C const (C::*c_mem_func_ptr_v)() volatile;
|
||||
typedef C (C::*mem_func_ptr_cv)() const volatile;
|
||||
typedef C const (C::*c_mem_func_ptr_cv)() const volatile;
|
||||
typedef int C::* mem_ptr;
|
||||
typedef int const C::* c_mem_ptr;
|
||||
|
||||
@ -29,28 +36,56 @@ BOOST_MPL_ASSERT((
|
||||
boost::is_same<ft::result_type<func>::type,C>
|
||||
));
|
||||
|
||||
BOOST_MPL_ASSERT((
|
||||
boost::is_same<ft::result_type<c_func>::type,C const>
|
||||
));
|
||||
|
||||
BOOST_MPL_ASSERT((
|
||||
boost::is_same<ft::result_type<func_ptr>::type,C>
|
||||
));
|
||||
|
||||
BOOST_MPL_ASSERT((
|
||||
boost::is_same<ft::result_type<c_func_ptr>::type,C const>
|
||||
));
|
||||
|
||||
BOOST_MPL_ASSERT((
|
||||
boost::is_same<ft::result_type<func_ref>::type,C>
|
||||
));
|
||||
|
||||
BOOST_MPL_ASSERT((
|
||||
boost::is_same<ft::result_type<c_func_ref>::type,C const>
|
||||
));
|
||||
|
||||
BOOST_MPL_ASSERT((
|
||||
boost::is_same<ft::result_type<mem_func_ptr>::type,C>
|
||||
));
|
||||
|
||||
BOOST_MPL_ASSERT((
|
||||
boost::is_same<ft::result_type<c_mem_func_ptr>::type,C>
|
||||
boost::is_same<ft::result_type<c_mem_func_ptr>::type,C const>
|
||||
));
|
||||
|
||||
BOOST_MPL_ASSERT((
|
||||
boost::is_same<ft::result_type<v_mem_func_ptr>::type,C>
|
||||
boost::is_same<ft::result_type<mem_func_ptr_c>::type,C>
|
||||
));
|
||||
|
||||
BOOST_MPL_ASSERT((
|
||||
boost::is_same<ft::result_type<cv_mem_func_ptr>::type,C>
|
||||
boost::is_same<ft::result_type<c_mem_func_ptr_c>::type,C const>
|
||||
));
|
||||
|
||||
BOOST_MPL_ASSERT((
|
||||
boost::is_same<ft::result_type<mem_func_ptr_v>::type,C>
|
||||
));
|
||||
|
||||
BOOST_MPL_ASSERT((
|
||||
boost::is_same<ft::result_type<c_mem_func_ptr_v>::type,C const>
|
||||
));
|
||||
|
||||
BOOST_MPL_ASSERT((
|
||||
boost::is_same<ft::result_type<mem_func_ptr_cv>::type,C>
|
||||
));
|
||||
|
||||
BOOST_MPL_ASSERT((
|
||||
boost::is_same<ft::result_type<c_mem_func_ptr_cv>::type,C const>
|
||||
));
|
||||
|
||||
BOOST_MPL_ASSERT((
|
||||
|
Reference in New Issue
Block a user