forked from boostorg/function_types
Compare commits
41 Commits
svn-branch
...
svn-branch
Author | SHA1 | Date | |
---|---|---|---|
7ce07a8920 | |||
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 | |||
60e32163d6 | |||
55aa1ff276 | |||
247a8a1ace | |||
e8a144226c | |||
60a0af0f66 | |||
20eb828129 | |||
f77db2de77 | |||
0e8e53a27f | |||
01fa810682 | |||
3bafb64003 |
@ -2,27 +2,29 @@
|
||||
# (C) Copyright Tobias Schwinger
|
||||
#
|
||||
# Use modification and distribution are subject to the boost Software License,
|
||||
# Version 1.0. (See http:/\/www.boost.org/LICENSE_1_0.txt).
|
||||
# Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
|
||||
|
||||
# Generates preprocessed files with wave.
|
||||
|
||||
rule wave
|
||||
{
|
||||
Depends $1 : $2 ;
|
||||
}
|
||||
|
||||
actions wave
|
||||
{
|
||||
chdir $(BOOST_ROOT)/libs/function_types/build
|
||||
$(BOOST_ROOT)/dist/bin/wave -S$(BOOST_ROOT) $(>) -o $(<)
|
||||
$(>[1]) -S../../.. $(>[2]) -o $(<)
|
||||
}
|
||||
|
||||
make $(BOOST_ROOT)/libs/function_types/build/timestamps/arity_loops
|
||||
: preprocess_arity_loops.cpp : wave ;
|
||||
W = ../../../tools/wave/build//wave ;
|
||||
|
||||
make $(BOOST_ROOT)/libs/function_types/build/timestamps/encoding
|
||||
: preprocess_encoding.cpp : wave ;
|
||||
make arity_loops
|
||||
: preprocess_arity_loops.cpp $(W) : wave : <location>build/timestamps
|
||||
;
|
||||
|
||||
make $(BOOST_ROOT)/libs/function_types/build/timestamps/cc_names
|
||||
: preprocess_cc_names.cpp : wave ;
|
||||
make encoding
|
||||
: preprocess_encoding.cpp $(W) : wave : <location>build/timestamps
|
||||
;
|
||||
|
||||
|
||||
make cc_names
|
||||
: preprocess_cc_names.cpp $(W) : wave : <location>build/timestamps
|
||||
;
|
||||
|
||||
explicit arity_loops encoding cc_names ;
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
// (C) Copyright Tobias Schwinger
|
||||
//
|
||||
// Use modification and distribution are subject to the boost Software License,
|
||||
// Version 1.0. (See http:/\/www.boost.org/LICENSE_1_0.txt).
|
||||
// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
// (C) Copyright Tobias Schwinger
|
||||
//
|
||||
// Use modification and distribution are subject to the boost Software License,
|
||||
// Version 1.0. (See http:/\/www.boost.org/LICENSE_1_0.txt).
|
||||
// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
// (C) Copyright Tobias Schwinger
|
||||
//
|
||||
// Use modification and distribution are subject to the boost Software License,
|
||||
// Version 1.0. (See http:/\/www.boost.org/LICENSE_1_0.txt).
|
||||
// Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
# (C) Copyright Tobias Schwinger
|
||||
#
|
||||
# Use modification and distribution are subject to the boost Software License,
|
||||
# Version 1.0. (See http:/\/www.boost.org/LICENSE_1_0.txt).
|
||||
# Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt).
|
||||
|
||||
using quickbook ;
|
||||
|
||||
@ -13,8 +13,7 @@ boostbook standalone
|
||||
:
|
||||
<xsl:param>boost.root=../../../..
|
||||
<xsl:param>boost.libraries=../../../libraries.htm
|
||||
<xsl:param>nav.layout=none
|
||||
<xsl:param>navig.graphics=0
|
||||
<xsl:param>html.stylesheet=../../../../doc/html/boostbook.css
|
||||
<xsl:param>chunk.first.sections=1
|
||||
<xsl:param>chunk.section.depth=2
|
||||
<xsl:param>generate.section.toc.level=2
|
||||
|
@ -897,7 +897,7 @@ definition of [^BOOST_FT_CC_NAMES]:
|
||||
|
||||
[section:BOOST_FT_CC BOOST_FT\_CC\_*]
|
||||
|
||||
Enables a specific calling convention. * dentoes the macro suffix, as
|
||||
Enables a specific calling convention. * denotes the macro suffix, as
|
||||
defined by
|
||||
[link boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES [^BOOST_FT_CC_NAMES]]
|
||||
or
|
||||
@ -1086,6 +1086,7 @@ Thanks go to the following people for supporting the development of this
|
||||
library in one or the other way:
|
||||
|
||||
* David Abrahams
|
||||
* Tom Brinkman
|
||||
* Aleksey Gurtovoy
|
||||
* Jody Hagins
|
||||
* Hartmut Kaiser
|
||||
@ -1093,9 +1094,12 @@ library in one or the other way:
|
||||
* John Maddock
|
||||
* Paul Mensonides
|
||||
* Alexander Nasonov
|
||||
* Richard Smith
|
||||
* Rob Stewart
|
||||
* Jonathan Turkanis
|
||||
* Pavel Vozenilek
|
||||
* Steven Watanabe
|
||||
* K. Noel Belcourt
|
||||
|
||||
[endsect]
|
||||
|
||||
|
@ -1,23 +1,31 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title> About Tag Types</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
|
||||
<title>About Tag Types</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
|
||||
<link rel="start" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
|
||||
<link rel="prev" href="use_cases.html" title=" Use Cases">
|
||||
<link rel="next" href="reference.html" title=" Reference">
|
||||
<link rel="prev" href="use_cases.html" title="Use Cases">
|
||||
<link rel="next" href="reference.html" title="Reference">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td></table>
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="use_cases.html">Prev</a><a accesskey="u" href="../index.html">Up</a><a accesskey="h" href="../index.html">Home</a><a accesskey="n" href="reference.html">Next</a>
|
||||
<a accesskey="p" href="use_cases.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_functiontypes.about_tag_types"></a><a href="about_tag_types.html" title=" About Tag Types"> About Tag Types</a></h2></div></div></div>
|
||||
<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
|
||||
per se, such as calling convention or whether a function is variadic or cv-
|
||||
@ -77,11 +85,15 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright <20> 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>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="use_cases.html">Prev</a><a accesskey="u" href="../index.html">Up</a><a accesskey="h" href="../index.html">Home</a><a accesskey="n" href="reference.html">Next</a>
|
||||
<a accesskey="p" href="use_cases.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,22 +1,30 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title> Acknowledgements</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
|
||||
<title>Acknowledgements</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
|
||||
<link rel="start" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
|
||||
<link rel="prev" href="rationale.html" title=" Rationale">
|
||||
<link rel="prev" href="rationale.html" title="Rationale">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td></table>
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="rationale.html">Prev</a><a accesskey="u" href="../index.html">Up</a><a accesskey="h" href="../index.html">Home</a>
|
||||
<a accesskey="p" href="rationale.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_functiontypes.acknowledgements"></a><a href="acknowledgements.html" title=" Acknowledgements"> Acknowledgements</a></h2></div></div></div>
|
||||
<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
|
||||
in one or the other way:
|
||||
@ -25,6 +33,9 @@
|
||||
<li>
|
||||
David Abrahams
|
||||
</li>
|
||||
<li>
|
||||
Tom Brinkman
|
||||
</li>
|
||||
<li>
|
||||
Aleksey Gurtovoy
|
||||
</li>
|
||||
@ -46,6 +57,9 @@
|
||||
<li>
|
||||
Alexander Nasonov
|
||||
</li>
|
||||
<li>
|
||||
Richard Smith
|
||||
</li>
|
||||
<li>
|
||||
Rob Stewart
|
||||
</li>
|
||||
@ -55,15 +69,25 @@
|
||||
<li>
|
||||
Pavel Vozenilek
|
||||
</li>
|
||||
<li>
|
||||
Steven Watanabe
|
||||
</li>
|
||||
<li>
|
||||
K. Noel Belcourt
|
||||
</li>
|
||||
</ul></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"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright <20> 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>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="rationale.html">Prev</a><a accesskey="u" href="../index.html">Up</a><a accesskey="h" href="../index.html">Home</a>
|
||||
<a accesskey="p" href="rationale.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,23 +1,31 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title> Introduction</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
|
||||
<title>Introduction</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
|
||||
<link rel="start" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
|
||||
<link rel="prev" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
|
||||
<link rel="next" href="use_cases.html" title=" Use Cases">
|
||||
<link rel="next" href="use_cases.html" title="Use Cases">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td></table>
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../index.html">Prev</a><a accesskey="u" href="../index.html">Up</a><a accesskey="h" href="../index.html">Home</a><a accesskey="n" href="use_cases.html">Next</a>
|
||||
<a accesskey="p" href="../index.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="use_cases.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_functiontypes.introduction"></a><a href="introduction.html" title=" Introduction"> Introduction</a></h2></div></div></div>
|
||||
<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
|
||||
function, function pointer, function reference and pointer to member types.
|
||||
@ -49,39 +57,38 @@
|
||||
constant called <code class="literal">value</code>.
|
||||
</p>
|
||||
<pre class="programlisting">
|
||||
<a href="reference/classification.html#boost_functiontypes.reference.classification.is_function_pointer" title="
|
||||
is_function_pointer">is_function_pointer</a><span class="special"><</span> <span class="keyword">bool</span><span class="special">(*)(</span><span class="keyword">int</span><span class="special">)</span> <span class="special">>::</span><span class="identifier">value</span> <span class="comment">// == true
|
||||
<a class="link" href="reference/classification.html#boost_functiontypes.reference.classification.is_function_pointer" title="is_function_pointer">is_function_pointer</a><span class="special"><</span> <span class="keyword">bool</span><span class="special">(*)(</span><span class="keyword">int</span><span class="special">)</span> <span class="special">>::</span><span class="identifier">value</span> <span class="comment">// == true
|
||||
</span>
|
||||
<a href="reference/decomposition.html#boost_functiontypes.reference.decomposition.function_arity" title="
|
||||
function_arity">function_arity</a><span class="special"><</span> <span class="keyword">bool</span><span class="special">(*)(</span><span class="keyword">int</span><span class="special">)</span> <span class="special">>::</span><span class="identifier">value</span> <span class="comment">// == 1
|
||||
<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="keyword">bool</span><span class="special">(*)(</span><span class="keyword">int</span><span class="special">)</span> <span class="special">>::</span><span class="identifier">value</span> <span class="comment">// == 1
|
||||
</span></pre>
|
||||
<p>
|
||||
Templates that encapsulate properties that are single types contain a type
|
||||
member called <code class="literal">type</code>.
|
||||
</p>
|
||||
<pre class="programlisting">
|
||||
<a href="reference/synthesis.html#boost_functiontypes.reference.synthesis.function_type" title="
|
||||
function_type">function_type</a><span class="special"><</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="keyword">int</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> <span class="comment">// is bool(int)
|
||||
<a class="link" href="reference/synthesis.html#boost_functiontypes.reference.synthesis.function_type" title="function_type">function_type</a><span class="special"><</span> <span class="identifier">mpl</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">bool</span><span class="special">,</span><span class="keyword">int</span><span class="special">></span> <span class="special">>::</span><span class="identifier">type</span> <span class="comment">// is bool(int)
|
||||
</span>
|
||||
<a href="reference/decomposition.html#boost_functiontypes.reference.decomposition.result_type" title="
|
||||
result_type">result_type</a><span class="special"><</span> <span class="keyword">bool</span><span class="special">(&)(</span><span class="keyword">int</span><span class="special">)</span> <span class="special">>::</span><span class="identifier">type</span> <span class="comment">// is bool
|
||||
<a class="link" href="reference/decomposition.html#boost_functiontypes.reference.decomposition.result_type" title="result_type">result_type</a><span class="special"><</span> <span class="keyword">bool</span><span class="special">(&)(</span><span class="keyword">int</span><span class="special">)</span> <span class="special">>::</span><span class="identifier">type</span> <span class="comment">// is bool
|
||||
</span></pre>
|
||||
<p>
|
||||
Templates that encapsulate properties that are type lists model an MPL-compatible
|
||||
type sequence.
|
||||
</p>
|
||||
<pre class="programlisting">
|
||||
<a href="reference/decomposition.html#boost_functiontypes.reference.decomposition.parameter_types" title="
|
||||
parameter_types">parameter_types</a><span class="special"><</span> <span class="keyword">bool</span><span class="special">(</span><span class="keyword">int</span><span class="special">)</span> <span class="special">></span> <span class="comment">// models an MPL sequence
|
||||
<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="keyword">bool</span><span class="special">(</span><span class="keyword">int</span><span class="special">)</span> <span class="special">></span> <span class="comment">// models an MPL sequence
|
||||
</span></pre>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright <20> 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>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../index.html">Prev</a><a accesskey="u" href="../index.html">Up</a><a accesskey="h" href="../index.html">Home</a><a accesskey="n" href="use_cases.html">Next</a>
|
||||
<a accesskey="p" href="../index.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="use_cases.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,28 +1,36 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title> Rationale</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
|
||||
<title>Rationale</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
|
||||
<link rel="start" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
|
||||
<link rel="prev" href="reference/macros.html" title=" Macros">
|
||||
<link rel="next" href="acknowledgements.html" title=" Acknowledgements">
|
||||
<link rel="prev" href="reference/macros.html" title="Macros">
|
||||
<link rel="next" href="acknowledgements.html" title="Acknowledgements">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td></table>
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="reference/macros.html">Prev</a><a accesskey="u" href="../index.html">Up</a><a accesskey="h" href="../index.html">Home</a><a accesskey="n" href="acknowledgements.html">Next</a>
|
||||
<a accesskey="p" href="reference/macros.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_functiontypes.rationale"></a><a href="rationale.html" title=" Rationale"> Rationale</a></h2></div></div></div>
|
||||
<a name="boost_functiontypes.rationale.error_handling_rationale"></a><h3>
|
||||
<a name="id931925"></a>
|
||||
<a href="rationale.html#boost_functiontypes.rationale.error_handling_rationale">Error
|
||||
<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="id2644279"></a>
|
||||
<a class="link" href="rationale.html#boost_functiontypes.rationale.error_handling_rationale">Error
|
||||
handling rationale</a>
|
||||
</h3>
|
||||
</h4>
|
||||
<p>
|
||||
The library does not define the required members of class templates in case
|
||||
of an error. This technique causes the compiler to stop displaying diagnostics
|
||||
@ -33,10 +41,10 @@
|
||||
The library's components have limited error conditions, so problematic input
|
||||
can be spotted easily.
|
||||
</p>
|
||||
<a name="boost_functiontypes.rationale.why_mpl_sequences_"></a><h3>
|
||||
<a name="id931962"></a>
|
||||
<a href="rationale.html#boost_functiontypes.rationale.why_mpl_sequences_">Why MPL Sequences?</a>
|
||||
</h3>
|
||||
<a name="boost_functiontypes.rationale.why_mpl_sequences_"></a><h4>
|
||||
<a name="id2644312"></a>
|
||||
<a class="link" href="rationale.html#boost_functiontypes.rationale.why_mpl_sequences_">Why MPL Sequences?</a>
|
||||
</h4>
|
||||
<p>
|
||||
MPL provides algorithms on Sequences, so transformations (such as turning by-value
|
||||
parameter types into const references for optimized forwarding or computing
|
||||
@ -46,23 +54,20 @@
|
||||
other Boost libraries (most importantly <a href="../../../../fusion/index.html" target="_top">Fusion</a>),
|
||||
so another reason is interoperability.
|
||||
</p>
|
||||
<a name="boost_functiontypes.rationale.pointer_to_member_object_types"></a><h3>
|
||||
<a name="id932020"></a>
|
||||
<a href="rationale.html#boost_functiontypes.rationale.pointer_to_member_object_types">Pointer
|
||||
<a name="boost_functiontypes.rationale.pointer_to_member_object_types"></a><h4>
|
||||
<a name="id2644363"></a>
|
||||
<a class="link" href="rationale.html#boost_functiontypes.rationale.pointer_to_member_object_types">Pointer
|
||||
to member object types</a>
|
||||
</h3>
|
||||
</h4>
|
||||
<p>
|
||||
Despite their syntax, pointer to member object types can be seen as dereferencing
|
||||
functionals. A reference is <span class="bold"><strong>not</strong></span> added to the
|
||||
"result", however, to allow greater flexibility (once a reference
|
||||
has been added there's no way to determine whether the referencee was a reference
|
||||
already).
|
||||
functionals.
|
||||
</p>
|
||||
<a name="boost_functiontypes.rationale.the_classtransform_template_parameter"></a><h3>
|
||||
<a name="id932060"></a>
|
||||
<a href="rationale.html#boost_functiontypes.rationale.the_classtransform_template_parameter">The
|
||||
<a name="boost_functiontypes.rationale.the_classtransform_template_parameter"></a><h4>
|
||||
<a name="id2644388"></a>
|
||||
<a class="link" href="rationale.html#boost_functiontypes.rationale.the_classtransform_template_parameter">The
|
||||
ClassTransform template parameter</a>
|
||||
</h3>
|
||||
</h4>
|
||||
<p>
|
||||
<code class="literal">This</code>-pointer, <code class="literal">this</code>-reference or just
|
||||
the object (or maybe even a smart pointer to the object) plus adjustments of
|
||||
@ -75,10 +80,10 @@
|
||||
client to adjust the class type before the sequence is formed and then treat
|
||||
all parameters uniformly.
|
||||
</p>
|
||||
<a name="boost_functiontypes.rationale.why_tag_types_"></a><h3>
|
||||
<a name="id932116"></a>
|
||||
<a href="rationale.html#boost_functiontypes.rationale.why_tag_types_">Why tag types?</a>
|
||||
</h3>
|
||||
<a name="boost_functiontypes.rationale.why_tag_types_"></a><h4>
|
||||
<a name="id2644439"></a>
|
||||
<a class="link" href="rationale.html#boost_functiontypes.rationale.why_tag_types_">Why tag types?</a>
|
||||
</h4>
|
||||
<p>
|
||||
Let's consider the alternatives.
|
||||
</p>
|
||||
@ -94,12 +99,12 @@
|
||||
parameters do not work within MPL lambda expressions and can cause problems
|
||||
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><h3>
|
||||
<a name="id932166"></a>
|
||||
<a 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
|
||||
<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="id2644479"></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>
|
||||
</h3>
|
||||
</h4>
|
||||
<p>
|
||||
Yes, but it isn't immediately obvious as the set of possible MPL sequences
|
||||
isn't inherently disjoint from the set of callable builtin types.
|
||||
@ -109,25 +114,23 @@
|
||||
idea, because builtin types are accessible before the headers that make the
|
||||
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><h3>
|
||||
<a name="id932214"></a>
|
||||
<a href="rationale.html#boost_functiontypes.rationale.why_does_the_hidden__literal_this__literal__parameter_count_for_the__function_arity_of_member_functions_">Why
|
||||
<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="id2644521"></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>
|
||||
</h3>
|
||||
</h4>
|
||||
<p>
|
||||
It was found preferable that the following condition holds:
|
||||
</p>
|
||||
<pre class="programlisting">
|
||||
<span class="identifier">mpl</span><span class="special">::</span><span class="identifier">size</span><span class="special"><</span> <a 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 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>
|
||||
<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><h3>
|
||||
<a name="id932341"></a>
|
||||
<a href="rationale.html#boost_functiontypes.rationale.why_ignore_top_level_cv_qualifiers_on_pointers_">Why
|
||||
<a name="boost_functiontypes.rationale.why_ignore_top_level_cv_qualifiers_on_pointers_"></a><h4>
|
||||
<a name="id2644638"></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>
|
||||
</h3>
|
||||
</h4>
|
||||
<p>
|
||||
A cv-qualified pointer is still a pointer. It usually doesn't matter and even
|
||||
if it does, it's a job for <a href="../../../../type_traits/index.html" target="_top">Boost.TypeTraits</a>.
|
||||
@ -135,11 +138,15 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright <20> 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>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="reference/macros.html">Prev</a><a accesskey="u" href="../index.html">Up</a><a accesskey="h" href="../index.html">Home</a><a accesskey="n" href="acknowledgements.html">Next</a>
|
||||
<a accesskey="p" href="reference/macros.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="acknowledgements.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,24 +1,31 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title> Reference</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
|
||||
<title>Reference</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
|
||||
<link rel="start" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
|
||||
<link rel="prev" href="about_tag_types.html" title=" About Tag Types">
|
||||
<link rel="next" href="reference/classification.html" title=" Class
|
||||
templates for type classification">
|
||||
<link rel="prev" href="about_tag_types.html" title="About Tag Types">
|
||||
<link rel="next" href="reference/classification.html" title="Class templates for type classification">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td></table>
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="about_tag_types.html">Prev</a><a accesskey="u" href="../index.html">Up</a><a accesskey="h" href="../index.html">Home</a><a accesskey="n" href="reference/classification.html">Next</a>
|
||||
<a accesskey="p" href="about_tag_types.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="reference/classification.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_functiontypes.reference"></a><a href="reference.html" title=" Reference"> Reference</a></h2></div></div></div>
|
||||
<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>
|
||||
@ -32,11 +39,15 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright <20> 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>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="about_tag_types.html">Prev</a><a accesskey="u" href="../index.html">Up</a><a accesskey="h" href="../index.html">Home</a><a accesskey="n" href="reference/classification.html">Next</a>
|
||||
<a accesskey="p" href="about_tag_types.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="reference/classification.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,27 +1,32 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title> Class
|
||||
templates for type classification</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
|
||||
<title>Class templates for type classification</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
|
||||
<link rel="start" href="../../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../reference.html" title=" Reference">
|
||||
<link rel="prev" href="../reference.html" title=" Reference">
|
||||
<link rel="next" href="decomposition.html" title=" Class templates
|
||||
for type decomposition">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="../reference.html" title="Reference">
|
||||
<link rel="next" href="decomposition.html" title="Class templates for type decomposition">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td></table>
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../reference.html">Prev</a><a accesskey="u" href="../reference.html">Up</a><a accesskey="h" href="../../index.html">Home</a><a accesskey="n" href="decomposition.html">Next</a>
|
||||
<a accesskey="p" href="../reference.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="decomposition.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_functiontypes.reference.classification"></a><a href="classification.html" title=" Class
|
||||
templates for type classification"> Class
|
||||
templates for type classification</a></h3></div></div></div>
|
||||
<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>
|
||||
@ -42,12 +47,11 @@
|
||||
</dl></div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.classification.is_function"></a><a href="classification.html#boost_functiontypes.reference.classification.is_function" title="
|
||||
is_function">
|
||||
is_function</a></h4></div></div></div>
|
||||
<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 href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
|
||||
null_tag">null_tag</a><span class="special">></span>
|
||||
<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>
|
||||
</pre>
|
||||
<p>
|
||||
@ -60,23 +64,23 @@
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term"><code class="literal">T</code></span></dt>
|
||||
<dd>
|
||||
Type to analyze
|
||||
</dd>
|
||||
<dd><p>
|
||||
Type to analyze
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">Tag</code></span></dt>
|
||||
<dd>
|
||||
Further properties required for a positive result
|
||||
</dd>
|
||||
<dd><p>
|
||||
Further properties required for a positive result
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">is_function<T,Tag></code></span></dt>
|
||||
<dd>
|
||||
Predicate value as <a href="../../../../../mpl/index.html" target="_top">MPL</a> -
|
||||
<a href="../../../../../mpl/doc/refmanual/integral-constant.html" target="_top">Integral
|
||||
Constant</a>
|
||||
</dd>
|
||||
<dd><p>
|
||||
Predicate value as <a href="../../../../../mpl/index.html" target="_top">MPL</a>
|
||||
- <a href="../../../../../mpl/doc/refmanual/integral-constant.html" target="_top">Integral
|
||||
Constant</a>
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">is_function<T,Tag>::value</code></span></dt>
|
||||
<dd>
|
||||
Constant boolean value
|
||||
</dd>
|
||||
<dd><p>
|
||||
Constant boolean value
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>
|
||||
@ -86,12 +90,11 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.classification.is_function_pointer"></a><a href="classification.html#boost_functiontypes.reference.classification.is_function_pointer" title="
|
||||
is_function_pointer">
|
||||
is_function_pointer</a></h4></div></div></div>
|
||||
<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 href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
|
||||
null_tag">null_tag</a><span class="special">></span>
|
||||
<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>
|
||||
</pre>
|
||||
<p>
|
||||
@ -104,21 +107,23 @@
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term"><code class="literal">T</code></span></dt>
|
||||
<dd>
|
||||
Type to analyze
|
||||
</dd>
|
||||
<dd><p>
|
||||
Type to analyze
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">Tag</code></span></dt>
|
||||
<dd>
|
||||
Further properties required for a positive result
|
||||
</dd>
|
||||
<dd><p>
|
||||
Further properties required for a positive result
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">is_function_pointer<T,Tag></code></span></dt>
|
||||
<dd>
|
||||
Predicate value <a href="../../../../../mpl/index.html" target="_top">MPL</a> - <a href="../../../../../mpl/doc/refmanual/integral-constant.html" target="_top">Integral Constant</a>
|
||||
</dd>
|
||||
<dd><p>
|
||||
Predicate value <a href="../../../../../mpl/index.html" target="_top">MPL</a> -
|
||||
<a href="../../../../../mpl/doc/refmanual/integral-constant.html" target="_top">Integral
|
||||
Constant</a>
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">is_function_pointer<T,Tag>::value</code></span></dt>
|
||||
<dd>
|
||||
Constant boolean value
|
||||
</dd>
|
||||
<dd><p>
|
||||
Constant boolean value
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>
|
||||
@ -128,12 +133,11 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.classification.is_function_reference"></a><a href="classification.html#boost_functiontypes.reference.classification.is_function_reference" title="
|
||||
is_function_reference">
|
||||
is_function_reference</a></h4></div></div></div>
|
||||
<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 href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
|
||||
null_tag">null_tag</a><span class="special">></span>
|
||||
<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>
|
||||
</pre>
|
||||
<p>
|
||||
@ -146,21 +150,23 @@
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term"><code class="literal">T</code></span></dt>
|
||||
<dd>
|
||||
Type to analyze
|
||||
</dd>
|
||||
<dd><p>
|
||||
Type to analyze
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">Tag</code></span></dt>
|
||||
<dd>
|
||||
Further properties required for a positive result
|
||||
</dd>
|
||||
<dd><p>
|
||||
Further properties required for a positive result
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">is_function_reference<T,Tag></code></span></dt>
|
||||
<dd>
|
||||
Predicate value <a href="../../../../../mpl/index.html" target="_top">MPL</a> - <a href="../../../../../mpl/doc/refmanual/integral-constant.html" target="_top">Integral Constant</a>
|
||||
</dd>
|
||||
<dd><p>
|
||||
Predicate value <a href="../../../../../mpl/index.html" target="_top">MPL</a> -
|
||||
<a href="../../../../../mpl/doc/refmanual/integral-constant.html" target="_top">Integral
|
||||
Constant</a>
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">is_function_reference<T,Tag>::value</code></span></dt>
|
||||
<dd>
|
||||
Constant boolean value
|
||||
</dd>
|
||||
<dd><p>
|
||||
Constant boolean value
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>
|
||||
@ -170,12 +176,11 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.classification.is_member_pointer"></a><a href="classification.html#boost_functiontypes.reference.classification.is_member_pointer" title="
|
||||
is_member_pointer">
|
||||
is_member_pointer</a></h4></div></div></div>
|
||||
<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 href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
|
||||
null_tag">null_tag</a><span class="special">></span>
|
||||
<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>
|
||||
</pre>
|
||||
<p>
|
||||
@ -188,21 +193,23 @@
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term"><code class="literal">T</code></span></dt>
|
||||
<dd>
|
||||
Type to analyze
|
||||
</dd>
|
||||
<dd><p>
|
||||
Type to analyze
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">Tag</code></span></dt>
|
||||
<dd>
|
||||
Further properties required for a positive result
|
||||
</dd>
|
||||
<dd><p>
|
||||
Further properties required for a positive result
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">is_member_pointer<T,Tag></code></span></dt>
|
||||
<dd>
|
||||
Predicate value <a href="../../../../../mpl/index.html" target="_top">MPL</a> - <a href="../../../../../mpl/doc/refmanual/integral-constant.html" target="_top">Integral Constant</a>
|
||||
</dd>
|
||||
<dd><p>
|
||||
Predicate value <a href="../../../../../mpl/index.html" target="_top">MPL</a> -
|
||||
<a href="../../../../../mpl/doc/refmanual/integral-constant.html" target="_top">Integral
|
||||
Constant</a>
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">is_member_pointer<T,Tag>::value</code></span></dt>
|
||||
<dd>
|
||||
Constant boolean value
|
||||
</dd>
|
||||
<dd><p>
|
||||
Constant boolean value
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>
|
||||
@ -212,9 +219,9 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.classification.is_member_object_pointer"></a><a 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>
|
||||
<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>
|
||||
@ -229,17 +236,19 @@
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term"><code class="literal">T</code></span></dt>
|
||||
<dd>
|
||||
Type to analyze
|
||||
</dd>
|
||||
<dd><p>
|
||||
Type to analyze
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">is_member_object_pointer<T></code></span></dt>
|
||||
<dd>
|
||||
Predicate value <a href="../../../../../mpl/index.html" target="_top">MPL</a> - <a href="../../../../../mpl/doc/refmanual/integral-constant.html" target="_top">Integral Constant</a>
|
||||
</dd>
|
||||
<dd><p>
|
||||
Predicate value <a href="../../../../../mpl/index.html" target="_top">MPL</a> -
|
||||
<a href="../../../../../mpl/doc/refmanual/integral-constant.html" target="_top">Integral
|
||||
Constant</a>
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">is_member_object_pointer<T>::value</code></span></dt>
|
||||
<dd>
|
||||
Constant boolean value
|
||||
</dd>
|
||||
<dd><p>
|
||||
Constant boolean value
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>
|
||||
@ -248,12 +257,11 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.classification.is_member_function_pointer"></a><a 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>
|
||||
<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 href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
|
||||
null_tag">null_tag</a><span class="special">></span>
|
||||
<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>
|
||||
</pre>
|
||||
<p>
|
||||
@ -266,21 +274,23 @@
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term"><code class="literal">T</code></span></dt>
|
||||
<dd>
|
||||
Type to analyze
|
||||
</dd>
|
||||
<dd><p>
|
||||
Type to analyze
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">Tag</code></span></dt>
|
||||
<dd>
|
||||
Further properties required for a positive result
|
||||
</dd>
|
||||
<dd><p>
|
||||
Further properties required for a positive result
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">is_member_function_pointer<T,Tag></code></span></dt>
|
||||
<dd>
|
||||
Predicate value <a href="../../../../../mpl/index.html" target="_top">MPL</a> - <a href="../../../../../mpl/doc/refmanual/integral-constant.html" target="_top">Integral Constant</a>
|
||||
</dd>
|
||||
<dd><p>
|
||||
Predicate value <a href="../../../../../mpl/index.html" target="_top">MPL</a> -
|
||||
<a href="../../../../../mpl/doc/refmanual/integral-constant.html" target="_top">Integral
|
||||
Constant</a>
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">is_member_function_pointer<T,Tag>::value</code></span></dt>
|
||||
<dd>
|
||||
Constant boolean value
|
||||
</dd>
|
||||
<dd><p>
|
||||
Constant boolean value
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>
|
||||
@ -290,12 +300,11 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.classification.is_callable_builtin"></a><a href="classification.html#boost_functiontypes.reference.classification.is_callable_builtin" title="
|
||||
is_callable_builtin">
|
||||
is_callable_builtin</a></h4></div></div></div>
|
||||
<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 href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
|
||||
null_tag">null_tag</a><span class="special">></span>
|
||||
<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>
|
||||
</pre>
|
||||
<p>
|
||||
@ -308,23 +317,23 @@
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term"><code class="literal">T</code></span></dt>
|
||||
<dd>
|
||||
Type to analyze
|
||||
</dd>
|
||||
<dd><p>
|
||||
Type to analyze
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">Tag</code></span></dt>
|
||||
<dd>
|
||||
Further properties required for a positive result
|
||||
</dd>
|
||||
<dd><p>
|
||||
Further properties required for a positive result
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">is_callable_builtin<T,Tag></code></span></dt>
|
||||
<dd>
|
||||
Predicate value as <a href="../../../../../mpl/index.html" target="_top">MPL</a> -
|
||||
<a href="../../../../../mpl/doc/refmanual/integral-constant.html" target="_top">Integral
|
||||
Constant</a>
|
||||
</dd>
|
||||
<dd><p>
|
||||
Predicate value as <a href="../../../../../mpl/index.html" target="_top">MPL</a>
|
||||
- <a href="../../../../../mpl/doc/refmanual/integral-constant.html" target="_top">Integral
|
||||
Constant</a>
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">is_callable_builtin<T,Tag>::value</code></span></dt>
|
||||
<dd>
|
||||
Constant boolean value
|
||||
</dd>
|
||||
<dd><p>
|
||||
Constant boolean value
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>
|
||||
@ -334,12 +343,11 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.classification.is_nonmember_callable_builtin"></a><a 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>
|
||||
<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 href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
|
||||
null_tag">null_tag</a><span class="special">></span>
|
||||
<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>
|
||||
</pre>
|
||||
<p>
|
||||
@ -352,23 +360,23 @@
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term"><code class="literal">T</code></span></dt>
|
||||
<dd>
|
||||
Type to analyze
|
||||
</dd>
|
||||
<dd><p>
|
||||
Type to analyze
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">Tag</code></span></dt>
|
||||
<dd>
|
||||
Further properties required for a positive result
|
||||
</dd>
|
||||
<dd><p>
|
||||
Further properties required for a positive result
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">is_nonmember_callable_builtin<T,Tag></code></span></dt>
|
||||
<dd>
|
||||
Predicate value as <a href="../../../../../mpl/index.html" target="_top">MPL</a> -
|
||||
<a href="../../../../../mpl/doc/refmanual/integral-constant.html" target="_top">Integral
|
||||
Constant</a>
|
||||
</dd>
|
||||
<dd><p>
|
||||
Predicate value as <a href="../../../../../mpl/index.html" target="_top">MPL</a>
|
||||
- <a href="../../../../../mpl/doc/refmanual/integral-constant.html" target="_top">Integral
|
||||
Constant</a>
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">is_nonmember_callable_builtin<T,Tag>::value</code></span></dt>
|
||||
<dd>
|
||||
Constant boolean value
|
||||
</dd>
|
||||
<dd><p>
|
||||
Constant boolean value
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>
|
||||
@ -380,11 +388,15 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright <20> 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>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../reference.html">Prev</a><a accesskey="u" href="../reference.html">Up</a><a accesskey="h" href="../../index.html">Home</a><a accesskey="n" href="decomposition.html">Next</a>
|
||||
<a accesskey="p" href="../reference.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="decomposition.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,28 +1,32 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title> Class templates
|
||||
for type decomposition</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
|
||||
<title>Class templates for type decomposition</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
|
||||
<link rel="start" href="../../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../reference.html" title=" Reference">
|
||||
<link rel="prev" href="classification.html" title=" Class
|
||||
templates for type classification">
|
||||
<link rel="next" href="synthesis.html" title=" Class templates
|
||||
for type synthesis">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="classification.html" title="Class templates for type classification">
|
||||
<link rel="next" href="synthesis.html" title="Class templates for type synthesis">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td></table>
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="classification.html">Prev</a><a accesskey="u" href="../reference.html">Up</a><a accesskey="h" href="../../index.html">Home</a><a accesskey="n" href="synthesis.html">Next</a>
|
||||
<a accesskey="p" href="classification.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="synthesis.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_functiontypes.reference.decomposition"></a><a href="decomposition.html" title=" Class templates
|
||||
for type decomposition"> Class templates
|
||||
for type decomposition</a></h3></div></div></div>
|
||||
<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>
|
||||
@ -35,9 +39,9 @@
|
||||
</dl></div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.decomposition.result_type"></a><a href="decomposition.html#boost_functiontypes.reference.decomposition.result_type" title="
|
||||
result_type">
|
||||
result_type</a></h4></div></div></div>
|
||||
<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>
|
||||
@ -52,13 +56,13 @@
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term"><code class="literal">F</code></span></dt>
|
||||
<dd>
|
||||
Type to analyze
|
||||
</dd>
|
||||
<dd><p>
|
||||
Type to analyze
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">result_type<F>::type</code></span></dt>
|
||||
<dd>
|
||||
Result type of <code class="literal">F</code>
|
||||
</dd>
|
||||
<dd><p>
|
||||
Result type of <code class="literal">F</code>
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>
|
||||
@ -71,9 +75,9 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.decomposition.parameter_types"></a><a href="decomposition.html#boost_functiontypes.reference.decomposition.parameter_types" title="
|
||||
parameter_types">
|
||||
parameter_types</a></h4></div></div></div>
|
||||
<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>
|
||||
@ -88,23 +92,23 @@
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term"><code class="literal">F</code></span></dt>
|
||||
<dd>
|
||||
Type to analyze
|
||||
</dd>
|
||||
<dd><p>
|
||||
Type to analyze
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">ClassTransform</code></span></dt>
|
||||
<dd>
|
||||
<a href="../../../../../mpl/index.html" target="_top">MPL</a> - <a href="../../../../../mpl/doc/refmanual/lambda-expression.html" target="_top">Lambda
|
||||
Expression</a> to transform the class type if <code class="literal">F</code>
|
||||
is a member function pointer
|
||||
</dd>
|
||||
<dd><p>
|
||||
<a href="../../../../../mpl/index.html" target="_top">MPL</a> - <a href="../../../../../mpl/doc/refmanual/lambda-expression.html" target="_top">Lambda
|
||||
Expression</a> to transform the class type if <code class="literal">F</code>
|
||||
is a member function pointer
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">parameter_types<F,ClassTransform></code></span></dt>
|
||||
<dd>
|
||||
<a href="../../../../../mpl/index.html" target="_top">MPL</a> - <a href="../../../../../mpl/doc/refmanual/front-extensible-sequence.html" target="_top">Front</a>
|
||||
/ <a href="../../../../../mpl/doc/refmanual/back-extensible-sequence.html" target="_top">Back
|
||||
</a><a href="../../../../../mpl/doc/refmanual/extensible-sequence.html" target="_top">Extensible
|
||||
</a><a href="../../../../../mpl/doc/refmanual/random-access-sequence.html" target="_top">Random
|
||||
Access Sequence</a> of parameter types
|
||||
</dd>
|
||||
<dd><p>
|
||||
<a href="../../../../../mpl/index.html" target="_top">MPL</a> - <a href="../../../../../mpl/doc/refmanual/front-extensible-sequence.html" target="_top">Front</a>
|
||||
/ <a href="../../../../../mpl/doc/refmanual/back-extensible-sequence.html" target="_top">Back
|
||||
</a><a href="../../../../../mpl/doc/refmanual/extensible-sequence.html" target="_top">Extensible
|
||||
</a><a href="../../../../../mpl/doc/refmanual/random-access-sequence.html" target="_top">Random
|
||||
Access Sequence</a> of parameter types
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>
|
||||
@ -117,9 +121,9 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.decomposition.function_arity"></a><a href="decomposition.html#boost_functiontypes.reference.decomposition.function_arity" title="
|
||||
function_arity">
|
||||
function_arity</a></h4></div></div></div>
|
||||
<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>
|
||||
@ -134,19 +138,19 @@
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term"><code class="literal">F</code></span></dt>
|
||||
<dd>
|
||||
Callable builtin type
|
||||
</dd>
|
||||
<dd><p>
|
||||
Callable builtin type
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">function_arity<F></code></span></dt>
|
||||
<dd>
|
||||
Function arity as <a href="../../../../../mpl/index.html" target="_top">MPL</a> -
|
||||
<a href="../../../../../mpl/doc/refmanual/integral-constant.html" target="_top">Integral
|
||||
Constant</a>
|
||||
</dd>
|
||||
<dd><p>
|
||||
Function arity as <a href="../../../../../mpl/index.html" target="_top">MPL</a>
|
||||
- <a href="../../../../../mpl/doc/refmanual/integral-constant.html" target="_top">Integral
|
||||
Constant</a>
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">function_arity<F>::value</code></span></dt>
|
||||
<dd>
|
||||
Constant value of the function arity
|
||||
</dd>
|
||||
<dd><p>
|
||||
Constant value of the function arity
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>
|
||||
@ -162,9 +166,9 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.decomposition.components"></a><a href="decomposition.html#boost_functiontypes.reference.decomposition.components" title="
|
||||
components">
|
||||
components</a></h4></div></div></div>
|
||||
<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>
|
||||
@ -179,27 +183,27 @@
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term"><code class="literal">T</code></span></dt>
|
||||
<dd>
|
||||
Type to analyze
|
||||
</dd>
|
||||
<dd><p>
|
||||
Type to analyze
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">ClassTransform</code></span></dt>
|
||||
<dd>
|
||||
<a href="../../../../../mpl/index.html" target="_top">MPL</a> - <a href="../../../../../mpl/doc/refmanual/lambda-expression.html" target="_top">Lambda
|
||||
Expression</a> to transform the class type if <code class="literal">T</code>
|
||||
is a member function pointer
|
||||
</dd>
|
||||
<dd><p>
|
||||
<a href="../../../../../mpl/index.html" target="_top">MPL</a> - <a href="../../../../../mpl/doc/refmanual/lambda-expression.html" target="_top">Lambda
|
||||
Expression</a> to transform the class type if <code class="literal">T</code>
|
||||
is a member function pointer
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">components<T,ClassTransform></code></span></dt>
|
||||
<dd>
|
||||
<a href="../../../../../mpl/index.html" target="_top">MPL</a> - <a href="../../../../../mpl/doc/refmanual/front-extensible-sequence.html" target="_top">Front</a>
|
||||
/ <a href="../../../../../mpl/doc/refmanual/back-extensible-sequence.html" target="_top">Back
|
||||
</a><a href="../../../../../mpl/doc/refmanual/extensible-sequence.html" target="_top">Extensible
|
||||
</a><a href="../../../../../mpl/doc/refmanual/random-access-sequence.html" target="_top">Random
|
||||
Access Sequence</a> of all component types and property tag
|
||||
</dd>
|
||||
<dd><p>
|
||||
<a href="../../../../../mpl/index.html" target="_top">MPL</a> - <a href="../../../../../mpl/doc/refmanual/front-extensible-sequence.html" target="_top">Front</a>
|
||||
/ <a href="../../../../../mpl/doc/refmanual/back-extensible-sequence.html" target="_top">Back
|
||||
</a><a href="../../../../../mpl/doc/refmanual/extensible-sequence.html" target="_top">Extensible
|
||||
</a><a href="../../../../../mpl/doc/refmanual/random-access-sequence.html" target="_top">Random
|
||||
Access Sequence</a> of all component types and property tag
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">components<T,ClassTransform>::types</code></span></dt>
|
||||
<dd>
|
||||
Decorated MPL Sequence, exposed for optimization
|
||||
</dd>
|
||||
<dd><p>
|
||||
Decorated MPL Sequence, exposed for optimization
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>
|
||||
@ -209,18 +213,21 @@
|
||||
</p>
|
||||
<p>
|
||||
If <code class="literal">T</code> is no callable builtin type, the component types
|
||||
are an empty sequence and the Tag's meaning is equivalent to the <code class="literal"><a href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
|
||||
null_tag">null_tag</a></code>.
|
||||
are an empty sequence and the Tag's meaning is equivalent to the <code class="literal"><a class="link" href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="null_tag">null_tag</a></code>.
|
||||
</p>
|
||||
</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"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright <20> 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>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="classification.html">Prev</a><a accesskey="u" href="../reference.html">Up</a><a accesskey="h" href="../../index.html">Home</a><a accesskey="n" href="synthesis.html">Next</a>
|
||||
<a accesskey="p" href="classification.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="synthesis.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,23 +1,31 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title> Macros</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
|
||||
<title>Macros</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
|
||||
<link rel="start" href="../../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../reference.html" title=" Reference">
|
||||
<link rel="prev" href="tag_types.html" title=" Tag Types">
|
||||
<link rel="next" href="../rationale.html" title=" Rationale">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="tag_types.html" title="Tag Types">
|
||||
<link rel="next" href="../rationale.html" title="Rationale">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td></table>
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="tag_types.html">Prev</a><a accesskey="u" href="../reference.html">Up</a><a accesskey="h" href="../../index.html">Home</a><a accesskey="n" href="../rationale.html">Next</a>
|
||||
<a accesskey="p" href="tag_types.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../rationale.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_functiontypes.reference.macros"></a><a href="macros.html" title=" Macros"> Macros</a></h3></div></div></div>
|
||||
<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>
|
||||
@ -40,9 +48,9 @@
|
||||
</dl></div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_MAX_ARITY"></a><a 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>
|
||||
<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
|
||||
by the library.
|
||||
@ -59,17 +67,16 @@
|
||||
</p>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES"></a><a 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>
|
||||
<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>
|
||||
of ternary <a href="../../../../../preprocessor/doc/data/tuples.html" target="_top">tuples</a>
|
||||
(these data types are defined in the <a href="../../../../../preprocessor/doc/index.html" target="_top">documentation
|
||||
of the Boost Preprocessor library</a>). Each sequence element describes
|
||||
one calling convention specifier. The first element in each tuple is the
|
||||
macro suffix for <a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC" title="
|
||||
BOOST_FT_CC_*"><code class="literal">BOOST_FT_CC_*</code></a>,
|
||||
macro suffix for <a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC" title="BOOST_FT_CC_*"><code class="literal">BOOST_FT_CC_*</code></a>,
|
||||
the second element is the name of the tag that describes the calling convention
|
||||
and the third is the name of the specifier. The specifier is allowed to
|
||||
be an empty string, so the third tuple element is either <a href="../../../../../preprocessor/doc/ref/empty.html" target="_top"><code class="literal">BOOST_PP_EMPTY</code></a>
|
||||
@ -99,15 +106,13 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_CC"></a><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC" title="
|
||||
BOOST_FT_CC_*">
|
||||
BOOST_FT_CC_*</a></h4></div></div></div>
|
||||
<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. * dentoes the macro suffix, as defined
|
||||
by <a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES" title="
|
||||
BOOST_FT_CC_NAMES"><code class="literal">BOOST_FT_CC_NAMES</code></a>
|
||||
or <a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES" title="
|
||||
BOOST_FT_CC_NAMES"><code class="literal">BOOST_FT_BUILTIN_CC_NAMES</code></a>.
|
||||
Enables a specific calling convention. * denotes the macro suffix, as defined
|
||||
by <a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES" title="BOOST_FT_CC_NAMES"><code class="literal">BOOST_FT_CC_NAMES</code></a>
|
||||
or <a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES" title="BOOST_FT_CC_NAMES"><code class="literal">BOOST_FT_BUILTIN_CC_NAMES</code></a>.
|
||||
</p>
|
||||
<p>
|
||||
The macro expands to a list of restrictions, separated by the <code class="literal">|</code>
|
||||
@ -142,9 +147,9 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_COMMON_X86_CCs"></a><a 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>
|
||||
<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
|
||||
already:
|
||||
@ -157,9 +162,9 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_SYNTAX"></a><a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_SYNTAX" title="
|
||||
BOOST_FT_SYNTAX">
|
||||
BOOST_FT_SYNTAX</a></h4></div></div></div>
|
||||
<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
|
||||
useful to handle the compiler specific placement of the calling convention
|
||||
@ -175,9 +180,9 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_NULLARY_PARAM"></a><a 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>
|
||||
<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>
|
||||
parameter for nullary function types, empty by default.
|
||||
@ -185,9 +190,9 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_NO_CV_FUNC_SUPPORT"></a><a 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>
|
||||
<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
|
||||
types are illegal by the current standard version, but there is a pending
|
||||
@ -202,9 +207,9 @@
|
||||
</p>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_PREPROCESSING_MODE"></a><a 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>
|
||||
<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
|
||||
than loading already-preprocessed header files) if defined.
|
||||
@ -212,28 +217,31 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.macros.BOOST_FT_CC_PREPROCESSING"></a><a 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>
|
||||
<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
|
||||
conventions (rather than loading an already-preprocessed header file) if
|
||||
defined.
|
||||
</p>
|
||||
<p>
|
||||
This macro is defined automatically if <a href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES" title="
|
||||
BOOST_FT_CC_NAMES"><code class="literal">BOOST_FT_CC_NAMES</code></a>
|
||||
This macro is defined automatically if <a class="link" href="macros.html#boost_functiontypes.reference.macros.BOOST_FT_CC_NAMES" title="BOOST_FT_CC_NAMES"><code class="literal">BOOST_FT_CC_NAMES</code></a>
|
||||
has been defined.
|
||||
</p>
|
||||
</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"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright <20> 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>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="tag_types.html">Prev</a><a accesskey="u" href="../reference.html">Up</a><a accesskey="h" href="../../index.html">Home</a><a accesskey="n" href="../rationale.html">Next</a>
|
||||
<a accesskey="p" href="tag_types.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../rationale.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,27 +1,32 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title> Class templates
|
||||
for type synthesis</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
|
||||
<title>Class templates for type synthesis</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
|
||||
<link rel="start" href="../../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../reference.html" title=" Reference">
|
||||
<link rel="prev" href="decomposition.html" title=" Class templates
|
||||
for type decomposition">
|
||||
<link rel="next" href="tag_types.html" title=" Tag Types">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="decomposition.html" title="Class templates for type decomposition">
|
||||
<link rel="next" href="tag_types.html" title="Tag Types">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td></table>
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="decomposition.html">Prev</a><a accesskey="u" href="../reference.html">Up</a><a accesskey="h" href="../../index.html">Home</a><a accesskey="n" href="tag_types.html">Next</a>
|
||||
<a accesskey="p" href="decomposition.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tag_types.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_functiontypes.reference.synthesis"></a><a href="synthesis.html" title=" Class templates
|
||||
for type synthesis"> Class templates
|
||||
for type synthesis</a></h3></div></div></div>
|
||||
<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>
|
||||
@ -34,12 +39,11 @@
|
||||
</dl></div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.synthesis.function_type"></a><a href="synthesis.html#boost_functiontypes.reference.synthesis.function_type" title="
|
||||
function_type">
|
||||
function_type</a></h4></div></div></div>
|
||||
<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 href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
|
||||
null_tag">null_tag</a><span class="special">></span>
|
||||
<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>
|
||||
</pre>
|
||||
<p>
|
||||
@ -52,19 +56,19 @@
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term"><code class="literal">Types</code></span></dt>
|
||||
<dd>
|
||||
Component types in form of an <a href="../../../../../mpl/index.html" target="_top">MPL</a>
|
||||
- <a href="../../../../../mpl/doc/refmanual/forward-sequence.html" target="_top">Forward
|
||||
Sequence</a> or another callable, builtin type
|
||||
</dd>
|
||||
<dd><p>
|
||||
Component types in form of an <a href="../../../../../mpl/index.html" target="_top">MPL</a>
|
||||
- <a href="../../../../../mpl/doc/refmanual/forward-sequence.html" target="_top">Forward
|
||||
Sequence</a> or another callable, builtin type
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">Tag</code></span></dt>
|
||||
<dd>
|
||||
Further properties
|
||||
</dd>
|
||||
<dd><p>
|
||||
Further properties
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">function_type<Types,Tag>::type</code></span></dt>
|
||||
<dd>
|
||||
Synthesized type
|
||||
</dd>
|
||||
<dd><p>
|
||||
Synthesized type
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>
|
||||
@ -77,12 +81,11 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.synthesis.function_pointer"></a><a href="synthesis.html#boost_functiontypes.reference.synthesis.function_pointer" title="
|
||||
function_pointer">
|
||||
function_pointer</a></h4></div></div></div>
|
||||
<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 href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
|
||||
null_tag">null_tag</a><span class="special">></span>
|
||||
<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>
|
||||
</pre>
|
||||
<p>
|
||||
@ -95,19 +98,19 @@
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term"><code class="literal">Types</code></span></dt>
|
||||
<dd>
|
||||
Component types in form of an <a href="../../../../../mpl/index.html" target="_top">MPL</a>
|
||||
- <a href="../../../../../mpl/doc/refmanual/forward-sequence.html" target="_top">Forward
|
||||
Sequence</a> or another callable, builtin type
|
||||
</dd>
|
||||
<dd><p>
|
||||
Component types in form of an <a href="../../../../../mpl/index.html" target="_top">MPL</a>
|
||||
- <a href="../../../../../mpl/doc/refmanual/forward-sequence.html" target="_top">Forward
|
||||
Sequence</a> or another callable, builtin type
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">Tag</code></span></dt>
|
||||
<dd>
|
||||
Further properties
|
||||
</dd>
|
||||
<dd><p>
|
||||
Further properties
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">function_pointer<Types,Tag>::type</code></span></dt>
|
||||
<dd>
|
||||
Synthesized type
|
||||
</dd>
|
||||
<dd><p>
|
||||
Synthesized type
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>
|
||||
@ -120,12 +123,11 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.synthesis.function_reference"></a><a href="synthesis.html#boost_functiontypes.reference.synthesis.function_reference" title="
|
||||
function_reference">
|
||||
function_reference</a></h4></div></div></div>
|
||||
<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 href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
|
||||
null_tag">null_tag</a><span class="special">></span>
|
||||
<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>
|
||||
</pre>
|
||||
<p>
|
||||
@ -138,19 +140,19 @@
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term"><code class="literal">Types</code></span></dt>
|
||||
<dd>
|
||||
Component types in form of an <a href="../../../../../mpl/index.html" target="_top">MPL</a>
|
||||
- <a href="../../../../../mpl/doc/refmanual/forward-sequence.html" target="_top">Forward
|
||||
Sequence</a> or another callable, builtin type
|
||||
</dd>
|
||||
<dd><p>
|
||||
Component types in form of an <a href="../../../../../mpl/index.html" target="_top">MPL</a>
|
||||
- <a href="../../../../../mpl/doc/refmanual/forward-sequence.html" target="_top">Forward
|
||||
Sequence</a> or another callable, builtin type
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">Tag</code></span></dt>
|
||||
<dd>
|
||||
Further properties
|
||||
</dd>
|
||||
<dd><p>
|
||||
Further properties
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">function_reference<Types,Tag>::type</code></span></dt>
|
||||
<dd>
|
||||
Synthesized type
|
||||
</dd>
|
||||
<dd><p>
|
||||
Synthesized type
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>
|
||||
@ -163,12 +165,11 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.synthesis.member_function_pointer"></a><a href="synthesis.html#boost_functiontypes.reference.synthesis.member_function_pointer" title="
|
||||
member_function_pointer">
|
||||
member_function_pointer</a></h4></div></div></div>
|
||||
<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 href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
|
||||
null_tag">null_tag</a><span class="special">></span>
|
||||
<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>
|
||||
</pre>
|
||||
<p>
|
||||
@ -181,19 +182,19 @@
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term"><code class="literal">Types</code></span></dt>
|
||||
<dd>
|
||||
Component types in form of an <a href="../../../../../mpl/index.html" target="_top">MPL</a>
|
||||
- <a href="../../../../../mpl/doc/refmanual/forward-sequence.html" target="_top">Forward
|
||||
Sequence</a> or another callable, builtin type
|
||||
</dd>
|
||||
<dd><p>
|
||||
Component types in form of an <a href="../../../../../mpl/index.html" target="_top">MPL</a>
|
||||
- <a href="../../../../../mpl/doc/refmanual/forward-sequence.html" target="_top">Forward
|
||||
Sequence</a> or another callable, builtin type
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">Tag</code></span></dt>
|
||||
<dd>
|
||||
Further properties
|
||||
</dd>
|
||||
<dd><p>
|
||||
Further properties
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">member_function_pointer<Types,Tag>::type</code></span></dt>
|
||||
<dd>
|
||||
Synthesized type
|
||||
</dd>
|
||||
<dd><p>
|
||||
Synthesized type
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>
|
||||
@ -213,11 +214,15 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright <20> 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>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="decomposition.html">Prev</a><a accesskey="u" href="../reference.html">Up</a><a accesskey="h" href="../../index.html">Home</a><a accesskey="n" href="tag_types.html">Next</a>
|
||||
<a accesskey="p" href="decomposition.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tag_types.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,24 +1,31 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title> Tag Types</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
|
||||
<title>Tag Types</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
|
||||
<link rel="start" href="../../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../reference.html" title=" Reference">
|
||||
<link rel="prev" href="synthesis.html" title=" Class templates
|
||||
for type synthesis">
|
||||
<link rel="next" href="macros.html" title=" Macros">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="synthesis.html" title="Class templates for type synthesis">
|
||||
<link rel="next" href="macros.html" title="Macros">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td></table>
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="synthesis.html">Prev</a><a accesskey="u" href="../reference.html">Up</a><a accesskey="h" href="../../index.html">Home</a><a accesskey="n" href="macros.html">Next</a>
|
||||
<a accesskey="p" href="synthesis.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="macros.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types"></a><a href="tag_types.html" title=" Tag Types"> Tag Types</a></h3></div></div></div>
|
||||
<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>
|
||||
@ -47,9 +54,9 @@
|
||||
</dl></div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.variadic"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.variadic" title="
|
||||
variadic">
|
||||
variadic</a></h4></div></div></div>
|
||||
<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>
|
||||
@ -66,9 +73,9 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.non_variadic"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.non_variadic" title="
|
||||
non_variadic">
|
||||
non_variadic</a></h4></div></div></div>
|
||||
<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>
|
||||
@ -84,9 +91,9 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.default_cc"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.default_cc" title="
|
||||
default_cc">
|
||||
default_cc</a></h4></div></div></div>
|
||||
<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>
|
||||
@ -102,9 +109,9 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.const_qualified"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.const_qualified" title="
|
||||
const_qualified">
|
||||
const_qualified</a></h4></div></div></div>
|
||||
<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>
|
||||
@ -120,9 +127,9 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.non_const"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.non_const" title="
|
||||
non_const">
|
||||
non_const</a></h4></div></div></div>
|
||||
<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>
|
||||
@ -138,9 +145,9 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.volatile_qualified"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.volatile_qualified" title="
|
||||
volatile_qualified">
|
||||
volatile_qualified</a></h4></div></div></div>
|
||||
<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>
|
||||
@ -156,9 +163,9 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.non_volatile"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.non_volatile" title="
|
||||
non_volatile">
|
||||
non_volatile</a></h4></div></div></div>
|
||||
<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>
|
||||
@ -174,7 +181,8 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.non_cv"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.non_cv" title=" non_cv"> non_cv</a></h4></div></div></div>
|
||||
<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>
|
||||
@ -192,9 +200,9 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.const_non_volatile"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.const_non_volatile" title="
|
||||
const_non_volatile">
|
||||
const_non_volatile</a></h4></div></div></div>
|
||||
<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>
|
||||
@ -212,9 +220,9 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.volatile_non_const"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.volatile_non_const" title="
|
||||
volatile_non_const">
|
||||
volatile_non_const</a></h4></div></div></div>
|
||||
<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>
|
||||
@ -232,9 +240,9 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.cv_qualfied"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.cv_qualfied" title="
|
||||
cv_qualfied">
|
||||
cv_qualfied</a></h4></div></div></div>
|
||||
<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>
|
||||
@ -252,9 +260,9 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.null_tag"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.null_tag" title="
|
||||
null_tag">
|
||||
null_tag</a></h4></div></div></div>
|
||||
<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>
|
||||
@ -270,7 +278,8 @@
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="boost_functiontypes.reference.tag_types.tag"></a><a href="tag_types.html#boost_functiontypes.reference.tag_types.tag" title=" tag"> tag</a></h4></div></div></div>
|
||||
<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,13 +295,13 @@
|
||||
<p class="title"><b></b></p>
|
||||
<dl>
|
||||
<dt><span class="term"><code class="literal">Tag<span class="emphasis"><em>N</em></span></code></span></dt>
|
||||
<dd>
|
||||
Property tag
|
||||
</dd>
|
||||
<dd><p>
|
||||
Property tag
|
||||
</p></dd>
|
||||
<dt><span class="term"><code class="literal">tag<Tag1,Tag2...></code></span></dt>
|
||||
<dd>
|
||||
Compound property tag
|
||||
</dd>
|
||||
<dd><p>
|
||||
Compound property tag
|
||||
</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
<p>
|
||||
@ -303,11 +312,15 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright <20> 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>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="synthesis.html">Prev</a><a accesskey="u" href="../reference.html">Up</a><a accesskey="h" href="../../index.html">Home</a><a accesskey="n" href="macros.html">Next</a>
|
||||
<a accesskey="p" href="synthesis.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="macros.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,23 +1,31 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title> Use Cases</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
|
||||
<title>Use Cases</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
|
||||
<link rel="start" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
|
||||
<link rel="up" href="../index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
|
||||
<link rel="prev" href="introduction.html" title=" Introduction">
|
||||
<link rel="next" href="about_tag_types.html" title=" About Tag Types">
|
||||
<link rel="prev" href="introduction.html" title="Introduction">
|
||||
<link rel="next" href="about_tag_types.html" title="About Tag Types">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td></table>
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="introduction.html">Prev</a><a accesskey="u" href="../index.html">Up</a><a accesskey="h" href="../index.html">Home</a><a accesskey="n" href="about_tag_types.html">Next</a>
|
||||
<a accesskey="p" href="introduction.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="about_tag_types.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" lang="en">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="boost_functiontypes.use_cases"></a><a href="use_cases.html" title=" Use Cases"> Use Cases</a></h2></div></div></div>
|
||||
<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
|
||||
a callable argument of builin type often involves a lot of repetitive code
|
||||
@ -136,8 +144,7 @@
|
||||
arguments from a type sequence in a single expression:
|
||||
</p>
|
||||
<pre class="programlisting">
|
||||
<span class="keyword">static_cast</span><span class="special"><</span><a href="reference/synthesis.html#boost_functiontypes.reference.synthesis.function_pointer" title="
|
||||
function_pointer">function_pointer</a><span class="special"><</span><span class="identifier">Seq</span><span class="special">>::</span><span class="identifier">type</span><span class="special">>(&</span> <span class="identifier">overloaded</span><span class="special">)</span>
|
||||
<span class="keyword">static_cast</span><span class="special"><</span><a class="link" href="reference/synthesis.html#boost_functiontypes.reference.synthesis.function_pointer" title="function_pointer">function_pointer</a><span class="special"><</span><span class="identifier">Seq</span><span class="special">>::</span><span class="identifier">type</span><span class="special">>(&</span> <span class="identifier">overloaded</span><span class="special">)</span>
|
||||
</pre>
|
||||
<p>
|
||||
This technique can be occasionally more flexible than template argument deduction
|
||||
@ -158,11 +165,15 @@
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><small>Copyright <20> 2004 -2007 Tobias Schwinger</small></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright <20> 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>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="introduction.html">Prev</a><a accesskey="u" href="../index.html">Up</a><a accesskey="h" href="../index.html">Home</a><a accesskey="n" href="about_tag_types.html">Next</a>
|
||||
<a accesskey="p" href="introduction.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="about_tag_types.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -1,528 +0,0 @@
|
||||
/*=============================================================================
|
||||
Copyright (c) 2004 Joel de Guzman
|
||||
http://spirit.sourceforge.net/
|
||||
|
||||
Use, modification and distribution is 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)
|
||||
=============================================================================*/
|
||||
|
||||
/*=============================================================================
|
||||
Body defaults
|
||||
=============================================================================*/
|
||||
|
||||
body
|
||||
{
|
||||
margin: 1em;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Paragraphs
|
||||
=============================================================================*/
|
||||
|
||||
p
|
||||
{
|
||||
text-align: left;
|
||||
font-size: 10pt;
|
||||
line-height: 1.15;
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Program listings
|
||||
=============================================================================*/
|
||||
|
||||
/* Code on paragraphs */
|
||||
p tt.computeroutput
|
||||
{
|
||||
font-size: 9pt;
|
||||
}
|
||||
|
||||
pre.synopsis
|
||||
{
|
||||
font-size: 90%;
|
||||
margin: 1pc 4% 0pc 4%;
|
||||
padding: 0.5pc 0.5pc 0.5pc 0.5pc;
|
||||
}
|
||||
|
||||
.programlisting,
|
||||
.screen
|
||||
{
|
||||
font-size: 9pt;
|
||||
display: block;
|
||||
margin: 1pc 4% 0pc 4%;
|
||||
padding: 0.5pc 0.5pc 0.5pc 0.5pc;
|
||||
}
|
||||
|
||||
/* Program listings in tables don't get borders */
|
||||
td .programlisting,
|
||||
td .screen
|
||||
{
|
||||
margin: 0pc 0pc 0pc 0pc;
|
||||
padding: 0pc 0pc 0pc 0pc;
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Headings
|
||||
=============================================================================*/
|
||||
|
||||
h1, h2, h3, h4, h5, h6
|
||||
{
|
||||
text-align: left;
|
||||
margin: 1em 0em 0.5em 0em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h1 { font: 140% }
|
||||
h2 { font: bold 140% }
|
||||
h3 { font: bold 130% }
|
||||
h4 { font: bold 120% }
|
||||
h5 { font: italic 110% }
|
||||
h6 { font: italic 100% }
|
||||
|
||||
/* Top page titles */
|
||||
title,
|
||||
h1.title,
|
||||
h2.title
|
||||
h3.title,
|
||||
h4.title,
|
||||
h5.title,
|
||||
h6.title,
|
||||
.refentrytitle
|
||||
{
|
||||
font-weight: bold;
|
||||
margin-bottom: 1pc;
|
||||
}
|
||||
|
||||
h1.title { font-size: 140% }
|
||||
h2.title { font-size: 140% }
|
||||
h3.title { font-size: 130% }
|
||||
h4.title { font-size: 120% }
|
||||
h5.title { font-size: 110% }
|
||||
h6.title { font-size: 100% }
|
||||
|
||||
.section h1
|
||||
{
|
||||
margin: 0em 0em 0.5em 0em;
|
||||
font-size: 140%;
|
||||
}
|
||||
|
||||
.section h2 { font-size: 140% }
|
||||
.section h3 { font-size: 130% }
|
||||
.section h4 { font-size: 120% }
|
||||
.section h5 { font-size: 110% }
|
||||
.section h6 { font-size: 100% }
|
||||
|
||||
/* Code on titles */
|
||||
h1 tt.computeroutput { font-size: 140% }
|
||||
h2 tt.computeroutput { font-size: 140% }
|
||||
h3 tt.computeroutput { font-size: 130% }
|
||||
h4 tt.computeroutput { font-size: 120% }
|
||||
h5 tt.computeroutput { font-size: 110% }
|
||||
h6 tt.computeroutput { font-size: 100% }
|
||||
|
||||
/*=============================================================================
|
||||
Author
|
||||
=============================================================================*/
|
||||
|
||||
h3.author
|
||||
{
|
||||
font-size: 100%
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Lists
|
||||
=============================================================================*/
|
||||
|
||||
li
|
||||
{
|
||||
font-size: 10pt;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
/* Unordered lists */
|
||||
ul
|
||||
{
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/* Ordered lists */
|
||||
ol
|
||||
{
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Links
|
||||
=============================================================================*/
|
||||
|
||||
a
|
||||
{
|
||||
text-decoration: none; /* no underline */
|
||||
}
|
||||
|
||||
a:hover
|
||||
{
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Spirit style navigation
|
||||
=============================================================================*/
|
||||
|
||||
.spirit-nav
|
||||
{
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.spirit-nav a
|
||||
{
|
||||
color: white;
|
||||
padding-left: 0.5em;
|
||||
}
|
||||
|
||||
.spirit-nav img
|
||||
{
|
||||
border-width: 0px;
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Table of contents
|
||||
=============================================================================*/
|
||||
|
||||
.toc
|
||||
{
|
||||
margin: 1pc 4% 0pc 4%;
|
||||
padding: 0.1pc 1pc 0.1pc 1pc;
|
||||
font-size: 80%;
|
||||
line-height: 1.15;
|
||||
}
|
||||
|
||||
.boost-toc
|
||||
{
|
||||
float: right;
|
||||
padding: 0.5pc;
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Tables
|
||||
=============================================================================*/
|
||||
|
||||
.table-title,
|
||||
div.table p.title
|
||||
{
|
||||
margin-left: 4%;
|
||||
padding-right: 0.5em;
|
||||
padding-left: 0.5em;
|
||||
}
|
||||
|
||||
.informaltable table,
|
||||
.table table
|
||||
{
|
||||
width: 92%;
|
||||
margin-left: 4%;
|
||||
margin-right: 4%;
|
||||
}
|
||||
|
||||
div.informaltable table,
|
||||
div.table table
|
||||
{
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
/* Table Cells */
|
||||
div.informaltable table tr td,
|
||||
div.table table tr td
|
||||
{
|
||||
padding: 0.5em;
|
||||
text-align: left;
|
||||
font-size: 9pt;
|
||||
}
|
||||
|
||||
div.informaltable table tr th,
|
||||
div.table table tr th
|
||||
{
|
||||
padding: 0.5em 0.5em 0.5em 0.5em;
|
||||
border: 1pt solid white;
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Blurbs
|
||||
=============================================================================*/
|
||||
|
||||
div.note,
|
||||
div.tip,
|
||||
div.important,
|
||||
div.caution,
|
||||
div.warning,
|
||||
div.sidebar
|
||||
{
|
||||
font-size: 9pt; /* A little bit smaller than the main text */
|
||||
line-height: 1.2;
|
||||
display: block;
|
||||
margin: 1pc 4% 0pc 4%;
|
||||
padding: 0.5pc 0.5pc 0.0pc 0.5pc;
|
||||
}
|
||||
|
||||
div.sidebar img
|
||||
{
|
||||
padding: 1pt;
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Callouts
|
||||
=============================================================================*/
|
||||
.line_callout_bug img
|
||||
{
|
||||
float: left;
|
||||
position:relative;
|
||||
left: 4px;
|
||||
top: -12px;
|
||||
clear: left;
|
||||
margin-left:-22px;
|
||||
}
|
||||
|
||||
.callout_bug img
|
||||
{
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Variable Lists
|
||||
=============================================================================*/
|
||||
|
||||
/* Make the terms in definition lists bold */
|
||||
div.variablelist dl dt,
|
||||
span.term
|
||||
{
|
||||
font-weight: bold;
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
div.variablelist table tbody tr td
|
||||
{
|
||||
text-align: left;
|
||||
vertical-align: top;
|
||||
padding: 0em 2em 0em 0em;
|
||||
font-size: 10pt;
|
||||
margin: 0em 0em 0.5em 0em;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
div.variablelist dl dt
|
||||
{
|
||||
margin-bottom: 0.2em;
|
||||
}
|
||||
|
||||
div.variablelist dl dd
|
||||
{
|
||||
margin: 0em 0em 0.5em 2em;
|
||||
font-size: 10pt;
|
||||
}
|
||||
|
||||
div.variablelist table tbody tr td p,
|
||||
div.variablelist dl dd p
|
||||
{
|
||||
margin: 0em 0em 0.5em 0em;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Misc
|
||||
=============================================================================*/
|
||||
|
||||
/* Title of books and articles in bibliographies */
|
||||
span.title
|
||||
{
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
span.underline
|
||||
{
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
span.strikethrough
|
||||
{
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
/* Copyright, Legal Notice */
|
||||
div div.legalnotice p
|
||||
{
|
||||
text-align: left
|
||||
}
|
||||
|
||||
/*=============================================================================
|
||||
Colors
|
||||
=============================================================================*/
|
||||
|
||||
@media screen
|
||||
{
|
||||
/* Links */
|
||||
a
|
||||
{
|
||||
color: #005a9c;
|
||||
}
|
||||
|
||||
a:visited
|
||||
{
|
||||
color: #9c5a9c;
|
||||
}
|
||||
|
||||
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
|
||||
h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover,
|
||||
h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited
|
||||
{
|
||||
text-decoration: none; /* no underline */
|
||||
color: #000000;
|
||||
}
|
||||
|
||||
/* Syntax Highlighting */
|
||||
.keyword { color: #0000AA; }
|
||||
.identifier { color: #000000; }
|
||||
.special { color: #707070; }
|
||||
.preprocessor { color: #402080; }
|
||||
.char { color: teal; }
|
||||
.comment { color: #800000; }
|
||||
.string { color: teal; }
|
||||
.number { color: teal; }
|
||||
.white_bkd { background-color: #FFFFFF; }
|
||||
.dk_grey_bkd { background-color: #999999; }
|
||||
|
||||
/* Copyright, Legal Notice */
|
||||
.copyright
|
||||
{
|
||||
color: #666666;
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
div div.legalnotice p
|
||||
{
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
/* Program listing */
|
||||
pre.synopsis
|
||||
{
|
||||
border: 1px solid #DCDCDC;
|
||||
}
|
||||
|
||||
.programlisting,
|
||||
.screen
|
||||
{
|
||||
border: 1px solid #DCDCDC;
|
||||
}
|
||||
|
||||
td .programlisting,
|
||||
td .screen
|
||||
{
|
||||
border: 0px solid #DCDCDC;
|
||||
}
|
||||
|
||||
/* Blurbs */
|
||||
div.note,
|
||||
div.tip,
|
||||
div.important,
|
||||
div.caution,
|
||||
div.warning,
|
||||
div.sidebar
|
||||
{
|
||||
border: 1px solid #DCDCDC;
|
||||
}
|
||||
|
||||
/* Table of contents */
|
||||
.toc
|
||||
{
|
||||
border: 1px solid #DCDCDC;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
div.informaltable table tr td,
|
||||
div.table table tr td
|
||||
{
|
||||
border: 1px solid #DCDCDC;
|
||||
}
|
||||
|
||||
div.informaltable table tr th,
|
||||
div.table table tr th
|
||||
{
|
||||
background-color: #F0F0F0;
|
||||
border: 1px solid #DCDCDC;
|
||||
}
|
||||
|
||||
/* Misc */
|
||||
span.highlight
|
||||
{
|
||||
color: #00A000;
|
||||
}
|
||||
}
|
||||
|
||||
@media print
|
||||
{
|
||||
/* Links */
|
||||
a
|
||||
{
|
||||
color: black;
|
||||
}
|
||||
|
||||
a:visited
|
||||
{
|
||||
color: black;
|
||||
}
|
||||
|
||||
.spirit-nav
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Program listing */
|
||||
pre.synopsis
|
||||
{
|
||||
border: 1px solid gray;
|
||||
}
|
||||
|
||||
.programlisting,
|
||||
.screen
|
||||
{
|
||||
border: 1px solid gray;
|
||||
}
|
||||
|
||||
td .programlisting,
|
||||
td .screen
|
||||
{
|
||||
border: 0px solid #DCDCDC;
|
||||
}
|
||||
|
||||
/* Table of contents */
|
||||
.toc
|
||||
{
|
||||
border: 1px solid gray;
|
||||
}
|
||||
|
||||
.informaltable table,
|
||||
.table table
|
||||
{
|
||||
border: 1px solid gray;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
/* Tables */
|
||||
div.informaltable table tr td,
|
||||
div.table table tr td
|
||||
{
|
||||
border: 1px solid gray;
|
||||
}
|
||||
|
||||
div.informaltable table tr th,
|
||||
div.table table tr th
|
||||
{
|
||||
border: 1px solid gray;
|
||||
}
|
||||
|
||||
/* Misc */
|
||||
span.highlight
|
||||
{
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
@ -2,22 +2,32 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
|
||||
<title>Chapter<EFBFBD>1.<2E>Boost.FunctionTypes 2.5</title>
|
||||
<link rel="stylesheet" href="boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
|
||||
<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
|
||||
<link rel="start" href="index.html" title="Chapter<65>1.<2E>Boost.FunctionTypes 2.5">
|
||||
<link rel="next" href="boost_functiontypes/introduction.html" title=" Introduction">
|
||||
<link rel="next" href="boost_functiontypes/introduction.html" title="Introduction">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td></table>
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/people/people.htm">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/more/faq.htm">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav"><a accesskey="n" href="boost_functiontypes/introduction.html">Next</a></div>
|
||||
<div class="spirit-nav"><a accesskey="n" href="boost_functiontypes/introduction.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
|
||||
<div class="chapter" lang="en">
|
||||
<div class="titlepage"><div>
|
||||
<div><h2 class="title">
|
||||
<a name="boost_functiontypes"></a>Chapter<EFBFBD>1.<2E>Boost.FunctionTypes 2.5</h2></div>
|
||||
<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 <20> 2004 -2007 Tobias Schwinger</p></div>
|
||||
<div><div class="legalnotice">
|
||||
<a name="id905065"></a><p>
|
||||
<a name="id2626484"></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,10 +46,10 @@
|
||||
</div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"><small><p>Last revised: May 13, 2007 at 14:01:00 GMT</p></small></td>
|
||||
<td align="right"><small></small></td>
|
||||
<td align="left"><p><small>Last revised: March 14, 2008 at 18:36:46 +0000</small></p></td>
|
||||
<td align="right"><div class="copyright-footer"></div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav"><a accesskey="n" href="boost_functiontypes/introduction.html">Next</a></div>
|
||||
<div class="spirit-nav"><a accesskey="n" href="boost_functiontypes/introduction.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -101,7 +101,11 @@ int main()
|
||||
|
||||
setup_test(v);
|
||||
t.restart();
|
||||
#if !BOOST_WORKAROUND(BOOST_MSVC, < 1400)
|
||||
do_test(v, BOOST_EXAMPLE_FAST_MEM_FN(& test::id));
|
||||
#else // MSVC<8 does not like the implementation of the deduction macro:
|
||||
do_test(v, ::example::fast_mem_fn< int (test::*)() const, & test::id >());
|
||||
#endif
|
||||
time1 = t.elapsed();
|
||||
std::cout << "fast_mem_fn | " << time1 << std::endl;
|
||||
|
||||
|
@ -8,6 +8,7 @@
|
||||
// See interface.hpp in this directory for details.
|
||||
|
||||
#include <iostream>
|
||||
#include <typeinfo>
|
||||
|
||||
#include "interface.hpp"
|
||||
|
||||
|
@ -14,11 +14,11 @@
|
||||
// ==========================
|
||||
//
|
||||
// When a function is registered, an 'invoker' template is instantiated with
|
||||
// the function's type. The 'invoker' fetches a value from the 'token_parser'
|
||||
// the function's type. The 'invoker' fetches a value from the 'token_parser'
|
||||
// for each parameter of the function into a tuple and finally invokes the the
|
||||
// function with these values as arguments. The invoker's entrypoint, which
|
||||
// is a function of the callable builtin that describes the function to call and
|
||||
// a reference to the 'token_parser', is partially bound to the registered
|
||||
// a reference to the 'token_parser', is partially bound to the registered
|
||||
// function and put into a map so it can be found by name during parsing.
|
||||
|
||||
#include <map>
|
||||
@ -36,9 +36,9 @@
|
||||
#include <boost/type_traits/remove_cv.hpp>
|
||||
#include <boost/type_traits/remove_reference.hpp>
|
||||
|
||||
#include <boost/fusion/algorithm/transformation/push_back.hpp>
|
||||
#include <boost/fusion/sequence/container/list/cons.hpp>
|
||||
#include <boost/fusion/functional/invocation/invoke.hpp>
|
||||
#include <boost/fusion/include/push_back.hpp>
|
||||
#include <boost/fusion/include/cons.hpp>
|
||||
#include <boost/fusion/include/invoke.hpp>
|
||||
|
||||
#include <boost/mpl/begin.hpp>
|
||||
#include <boost/mpl/end.hpp>
|
||||
@ -58,7 +58,7 @@ namespace example
|
||||
|
||||
class interpreter
|
||||
{
|
||||
class token_parser;
|
||||
class token_parser;
|
||||
typedef boost::function<void(token_parser &)> invoker_function;
|
||||
typedef std::map<std::string, invoker_function> dictionary;
|
||||
|
||||
@ -66,7 +66,7 @@ namespace example
|
||||
public:
|
||||
// Registers a function with the interpreter.
|
||||
template<typename Function>
|
||||
typename boost::enable_if< ft::is_nonmember_callable_builtin<Function>
|
||||
typename boost::enable_if< ft::is_nonmember_callable_builtin<Function>
|
||||
>::type register_function(std::string const & name, Function f);
|
||||
|
||||
// Parse input for functions to call.
|
||||
@ -76,13 +76,13 @@ namespace example
|
||||
template< typename Function
|
||||
, class From = typename mpl::begin< ft::parameter_types<Function> >::type
|
||||
, class To = typename mpl::end< ft::parameter_types<Function> >::type
|
||||
>
|
||||
>
|
||||
struct invoker;
|
||||
};
|
||||
|
||||
class interpreter::token_parser
|
||||
{
|
||||
typedef boost::token_iterator_generator<
|
||||
typedef boost::token_iterator_generator<
|
||||
boost::char_separator<char> >::type token_iterator;
|
||||
|
||||
token_iterator itr_at, itr_to;
|
||||
@ -101,7 +101,7 @@ namespace example
|
||||
// Returns a token of given type.
|
||||
// We just apply boost::lexical_cast to whitespace separated string tokens
|
||||
// for simplicity.
|
||||
template<typename RequestedType>
|
||||
template<typename RequestedType>
|
||||
typename remove_cv_ref<RequestedType>::type get()
|
||||
{
|
||||
if (! this->has_more_tokens())
|
||||
@ -111,8 +111,8 @@ namespace example
|
||||
{
|
||||
typedef typename remove_cv_ref<RequestedType>::type result_type;
|
||||
result_type result = boost::lexical_cast
|
||||
<typename remove_cv_ref<result_type>::type>(*this->itr_at);
|
||||
++this->itr_at;
|
||||
<typename remove_cv_ref<result_type>::type>(*this->itr_at);
|
||||
++this->itr_at;
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -129,12 +129,13 @@ namespace example
|
||||
{
|
||||
// add an argument to a Fusion cons-list for each parameter type
|
||||
template<typename Args>
|
||||
static inline
|
||||
static inline
|
||||
void apply(Function func, token_parser & parser, Args const & args)
|
||||
{
|
||||
typedef typename mpl::deref<From>::type arg_type;
|
||||
typedef typename mpl::next<From>::type next_iter_type;
|
||||
|
||||
invoker<Function, typename mpl::next<From>::type, To>::apply
|
||||
interpreter::invoker<Function, next_iter_type, To>::apply
|
||||
( func, parser, fusion::push_back(args, parser.get<arg_type>()) );
|
||||
}
|
||||
};
|
||||
@ -144,7 +145,7 @@ namespace example
|
||||
{
|
||||
// the argument list is complete, now call the function
|
||||
template<typename Args>
|
||||
static inline
|
||||
static inline
|
||||
void apply(Function func, token_parser &, Args const & args)
|
||||
{
|
||||
fusion::invoke(func,args);
|
||||
@ -156,7 +157,7 @@ namespace example
|
||||
interpreter::register_function(std::string const & name, Function f)
|
||||
{
|
||||
// instantiate and store the invoker by name
|
||||
this->map_invokers[name] = boost::bind(
|
||||
this->map_invokers[name] = boost::bind(
|
||||
& invoker<Function>::template apply<fusion::nil>, f,_1,fusion::nil() );
|
||||
}
|
||||
|
||||
@ -177,9 +178,9 @@ namespace example
|
||||
// look up function
|
||||
dictionary::const_iterator entry = map_invokers.find( func_name );
|
||||
if (entry == map_invokers.end())
|
||||
throw std::runtime_error("unknown function: " + func_name);
|
||||
|
||||
// call the invoker which controls argument parsing
|
||||
throw std::runtime_error("unknown function: " + func_name);
|
||||
|
||||
// call the invoker which controls argument parsing
|
||||
entry->second(parser);
|
||||
}
|
||||
}
|
||||
|
@ -120,13 +120,14 @@ namespace boost
|
||||
template
|
||||
< typename Components
|
||||
, typename IfTagged
|
||||
, typename ThenTag
|
||||
, typename ThenTag
|
||||
, typename DefaultBase = components_non_func_base
|
||||
>
|
||||
struct retagged_if
|
||||
: mpl::if_
|
||||
< detail::represents_impl<Components, IfTagged>
|
||||
, detail::changed_tag<Components,IfTagged,ThenTag>
|
||||
, components_non_func_base
|
||||
, DefaultBase
|
||||
>::type
|
||||
{ };
|
||||
|
||||
@ -213,14 +214,71 @@ namespace boost
|
||||
: components_impl<T,L>
|
||||
{ };
|
||||
|
||||
#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x565))
|
||||
|
||||
template<typename T, class C>
|
||||
struct member_obj_ptr_result
|
||||
{ typedef T & type; };
|
||||
|
||||
template<typename T, class C>
|
||||
struct member_obj_ptr_result<T, C const>
|
||||
{ typedef T const & type; };
|
||||
|
||||
template<typename T, class C>
|
||||
struct member_obj_ptr_result<T, C volatile>
|
||||
{ typedef T volatile & type; };
|
||||
|
||||
template<typename T, class C>
|
||||
struct member_obj_ptr_result<T, C const volatile>
|
||||
{ typedef T const volatile & type; };
|
||||
|
||||
template<typename T, class C>
|
||||
struct member_obj_ptr_result<T &, C>
|
||||
{ typedef T & type; };
|
||||
|
||||
template<typename T, class C>
|
||||
struct member_obj_ptr_result<T &, C const>
|
||||
{ typedef T & type; };
|
||||
|
||||
template<typename T, class C>
|
||||
struct member_obj_ptr_result<T &, C volatile>
|
||||
{ typedef T & type; };
|
||||
|
||||
template<typename T, class C>
|
||||
struct member_obj_ptr_result<T &, C const volatile>
|
||||
{ typedef T & type; };
|
||||
|
||||
template<typename T, class C, typename L>
|
||||
struct member_obj_ptr_components
|
||||
: member_object_pointer_base
|
||||
{
|
||||
typedef function_types::components<T C::*, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
|
||||
typedef mpl::integral_c<std::size_t,1> function_arity;
|
||||
|
||||
typedef mpl::vector2< typename detail::member_obj_ptr_result<T,C>::type,
|
||||
typename detail::class_transform<C,L>::type > types;
|
||||
};
|
||||
|
||||
#if !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x565))
|
||||
# define BOOST_FT_variations BOOST_FT_pointer|BOOST_FT_member_pointer
|
||||
|
||||
template<typename T, class C, typename L>
|
||||
struct components_impl<T C::*, L>
|
||||
: member_obj_ptr_components<T,C,L>
|
||||
{ };
|
||||
|
||||
#else
|
||||
# define BOOST_FT_variations BOOST_FT_pointer
|
||||
|
||||
// This workaround removes the member pointer from the type to allow
|
||||
// detection of member function pointers with BCC.
|
||||
template<typename T, typename C, typename L>
|
||||
struct components_impl<T C::*, L>
|
||||
: detail::retagged_if
|
||||
< detail::components_impl<typename boost::remove_cv<T>::type *, L>
|
||||
, pointer_tag, /* --> */ member_pointer_tag >
|
||||
, pointer_tag, /* --> */ member_function_pointer_tag
|
||||
, member_obj_ptr_components<T,C,L> >
|
||||
{ };
|
||||
|
||||
// BCC lets us test the cv-qualification of a function type by template
|
||||
@ -349,65 +407,13 @@ namespace boost
|
||||
struct components_bcc
|
||||
: mpl::if_
|
||||
< detail::represents_impl< detail::components_impl<T,L>
|
||||
, member_pointer_tag>
|
||||
, member_function_pointer_tag>
|
||||
, detail::mfp_components<detail::components_impl<T,L>,T,OrigT,L>
|
||||
, detail::components_impl<T,L>
|
||||
>::type
|
||||
{ };
|
||||
|
||||
// TODO: add data member support for Borland
|
||||
|
||||
# define BOOST_FT_variations BOOST_FT_pointer
|
||||
#else // end of BORLAND WORKAROUND
|
||||
# define BOOST_FT_variations BOOST_FT_pointer|BOOST_FT_member_pointer
|
||||
|
||||
template<typename T, class C>
|
||||
struct member_obj_ptr_result
|
||||
{ typedef T & type; };
|
||||
|
||||
template<typename T, class C>
|
||||
struct member_obj_ptr_result<T, C const>
|
||||
{ typedef T const & type; };
|
||||
|
||||
template<typename T, class C>
|
||||
struct member_obj_ptr_result<T, C volatile>
|
||||
{ typedef T volatile & type; };
|
||||
|
||||
template<typename T, class C>
|
||||
struct member_obj_ptr_result<T, C const volatile>
|
||||
{ typedef T const volatile & type; };
|
||||
|
||||
template<typename T, class C>
|
||||
struct member_obj_ptr_result<T &, C>
|
||||
{ typedef T & type; };
|
||||
|
||||
template<typename T, class C>
|
||||
struct member_obj_ptr_result<T &, C const>
|
||||
{ typedef T & type; };
|
||||
|
||||
template<typename T, class C>
|
||||
struct member_obj_ptr_result<T &, C volatile>
|
||||
{ typedef T & type; };
|
||||
|
||||
template<typename T, class C>
|
||||
struct member_obj_ptr_result<T &, C const volatile>
|
||||
{ typedef T & type; };
|
||||
|
||||
|
||||
template<typename T, class C, typename L>
|
||||
struct components_impl<T C::*, L>
|
||||
: member_object_pointer_base
|
||||
{
|
||||
typedef function_types::components<T C::*, L> type;
|
||||
typedef components_mpl_sequence_tag tag;
|
||||
|
||||
typedef mpl::integral_c<std::size_t,1> function_arity;
|
||||
|
||||
typedef mpl::vector2< typename detail::member_obj_ptr_result<T,C>::type,
|
||||
typename detail::class_transform<C,L>::type > types;
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif // end of BORLAND WORKAROUND
|
||||
|
||||
#define BOOST_FT_al_path boost/function_types/detail/components_impl
|
||||
#include <boost/function_types/detail/pp_loop.hpp>
|
||||
|
@ -18,33 +18,36 @@
|
||||
# error "unsupported compiler version"
|
||||
# endif
|
||||
|
||||
// enable clrcall calling covention (call to .NET managed code) when
|
||||
// compiling with /clr
|
||||
# if BOOST_MSVC >= 1400 && defined(__cplusplus_cli)
|
||||
# ifndef BOOST_FT_CC_CLRCALL
|
||||
# define BOOST_FT_CC_CLRCALL callable_builtin
|
||||
# endif
|
||||
# endif
|
||||
# ifdef BOOST_FT_AUTODETECT_CALLING_CONVENTIONS
|
||||
|
||||
// Intel x86 architecture specific calling conventions
|
||||
# ifdef _M_IX86
|
||||
# define BOOST_FT_COMMON_X86_CCs callable_builtin
|
||||
# if BOOST_MSVC < 1400
|
||||
// version 7.1 is missing a keyword to specify the thiscall cc ...
|
||||
# ifndef BOOST_FT_CC_IMPLICIT_THISCALL
|
||||
# define BOOST_FT_CC_IMPLICIT_THISCALL non_variadic|member|callable_builtin
|
||||
# ifndef BOOST_FT_CONFIG_OK
|
||||
# pragma message("INFO| /Gd /Gr /Gz will compiler options will cause")
|
||||
# pragma message("INFO| a compile error.")
|
||||
# pragma message("INFO| Reconfigure Boost.FunctionTypes in this case.")
|
||||
# pragma message("INFO| This message can be suppressed by defining")
|
||||
# pragma message("INFO| BOOST_FT_CONFIG_OK.")
|
||||
// enable clrcall calling covention (call to .NET managed code) when
|
||||
// compiling with /clr
|
||||
# if BOOST_MSVC >= 1400 && defined(__cplusplus_cli)
|
||||
# ifndef BOOST_FT_CC_CLRCALL
|
||||
# define BOOST_FT_CC_CLRCALL callable_builtin
|
||||
# endif
|
||||
# endif
|
||||
# else
|
||||
// ...introduced in version 8
|
||||
# ifndef BOOST_FT_CC_THISCALL
|
||||
# define BOOST_FT_CC_THISCALL non_variadic|member|callable_builtin
|
||||
# endif
|
||||
|
||||
// Intel x86 architecture specific calling conventions
|
||||
# ifdef _M_IX86
|
||||
# define BOOST_FT_COMMON_X86_CCs callable_builtin
|
||||
# if BOOST_MSVC < 1400
|
||||
// version 7.1 is missing a keyword to specify the thiscall cc ...
|
||||
# ifndef BOOST_FT_CC_IMPLICIT_THISCALL
|
||||
# define BOOST_FT_CC_IMPLICIT_THISCALL non_variadic|member|callable_builtin
|
||||
# ifndef BOOST_FT_CONFIG_OK
|
||||
# pragma message("INFO| /Gd /Gr /Gz will compiler options will cause")
|
||||
# pragma message("INFO| a compile error.")
|
||||
# pragma message("INFO| Reconfigure Boost.FunctionTypes in this case.")
|
||||
# pragma message("INFO| This message can be suppressed by defining")
|
||||
# pragma message("INFO| BOOST_FT_CONFIG_OK.")
|
||||
# endif
|
||||
# endif
|
||||
# else
|
||||
// ...introduced in version 8
|
||||
# ifndef BOOST_FT_CC_THISCALL
|
||||
# define BOOST_FT_CC_THISCALL non_variadic|member|callable_builtin
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
@ -55,32 +58,37 @@
|
||||
# error "unsupported compiler version"
|
||||
# endif
|
||||
|
||||
# if defined(__i386__)
|
||||
# // see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20439
|
||||
# // see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29328
|
||||
# if BOOST_WORKAROUND(__GNUC__,BOOST_TESTED_AT(4))
|
||||
# ifndef BOOST_FT_CC_IMPLICIT
|
||||
# define BOOST_FT_CC_IMPLICIT member|callable_builtin
|
||||
# ifdef BOOST_FT_AUTODETECT_CALLING_CONVENTIONS
|
||||
|
||||
# if defined(__i386__)
|
||||
# // see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20439
|
||||
# // see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29328
|
||||
# if BOOST_WORKAROUND(__GNUC__,BOOST_TESTED_AT(4))
|
||||
# ifndef BOOST_FT_CC_IMPLICIT
|
||||
# define BOOST_FT_CC_IMPLICIT member|callable_builtin
|
||||
# endif
|
||||
# define BOOST_FT_COMMON_X86_CCs non_member|callable_builtin
|
||||
# else
|
||||
# define BOOST_FT_COMMON_X86_CCs callable_builtin
|
||||
# endif
|
||||
# define BOOST_FT_COMMON_X86_CCs non_member|callable_builtin
|
||||
# else
|
||||
# define BOOST_FT_COMMON_X86_CCs callable_builtin
|
||||
# endif
|
||||
# else
|
||||
# ifndef BOOST_FT_CC_IMPLICIT
|
||||
# define BOOST_FT_CC_IMPLICIT callable_builtin
|
||||
# ifndef BOOST_FT_CC_IMPLICIT
|
||||
# define BOOST_FT_CC_IMPLICIT callable_builtin
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
|
||||
# // TODO: straighten out this hack
|
||||
# ifndef __cdecl
|
||||
# define __cdecl __attribute__((__cdecl__))
|
||||
# if (defined(BOOST_FT_CC_CDECL) || defined(BOOST_FT_COMMON_X86_CCs)) \
|
||||
&& !defined(__cdecl)
|
||||
# define __cdecl __attribute__((__cdecl__))
|
||||
# endif
|
||||
# ifndef __stdcall
|
||||
# define __stdcall __attribute__((__stdcall__))
|
||||
# if (defined(BOOST_FT_CC_STDCALL) || defined(BOOST_FT_COMMON_X86_CCs)) \
|
||||
&& !defined(__stdcall)
|
||||
# define __stdcall __attribute__((__stdcall__))
|
||||
# endif
|
||||
# ifndef __fastcall
|
||||
# define __fastcall __attribute__((__fastcall__))
|
||||
# if (defined(BOOST_FT_CC_FASTCALL) || defined(BOOST_FT_COMMON_X86_CCs)) \
|
||||
&& !defined(__fastcall)
|
||||
# define __fastcall __attribute__((__fastcall__))
|
||||
# endif
|
||||
|
||||
#elif defined(__BORLANDC__)
|
||||
@ -91,7 +99,9 @@
|
||||
# pragma message("WARNING: library untested with this compiler version")
|
||||
# endif
|
||||
|
||||
# define BOOST_FT_COMMON_X86_CCs callable_builtin
|
||||
# ifdef BOOST_FT_AUTODETECT_CALLING_CONVENTIONS
|
||||
# define BOOST_FT_COMMON_X86_CCs callable_builtin
|
||||
# endif
|
||||
|
||||
// syntactic specialities of cc specifier
|
||||
# define BOOST_FT_SYNTAX(result,lparen,cc_spec,type_mod,name,rparen) \
|
||||
|
@ -12,7 +12,8 @@
|
||||
#include <cstddef>
|
||||
#include <boost/detail/workaround.hpp>
|
||||
|
||||
#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
|
||||
#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
|
||||
|| BOOST_WORKAROUND(__BORLANDC__, <= 0x582)
|
||||
# include <boost/type_traits/remove_cv.hpp>
|
||||
# include <boost/type_traits/remove_pointer.hpp>
|
||||
# include <boost/type_traits/remove_reference.hpp>
|
||||
@ -22,10 +23,8 @@
|
||||
|
||||
namespace boost { namespace function_types { namespace detail {
|
||||
|
||||
namespace ft = boost::function_types;
|
||||
|
||||
|
||||
#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
|
||||
#if ! (defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
|
||||
|| BOOST_WORKAROUND(__BORLANDC__, <= 0x582))
|
||||
|
||||
template<typename T> struct cv_traits
|
||||
{ typedef non_cv tag; typedef T type; };
|
||||
@ -109,12 +108,13 @@ struct cv_code
|
||||
{
|
||||
static T _t;
|
||||
BOOST_STATIC_CONSTANT(std::size_t, value =
|
||||
sizeof(ft::detail::switch_cv(ft::detail::ref_to_ptr(_t) ) ));
|
||||
sizeof(::boost::function_types::detail::switch_cv(
|
||||
::boost::function_types::detail::ref_to_ptr(_t) ) ));
|
||||
};
|
||||
|
||||
template<typename T> struct cv_traits
|
||||
{
|
||||
typedef typename ft::detail::cv_tag_impl<
|
||||
typedef typename boost::function_types::detail::cv_tag_impl<
|
||||
::boost::function_types::detail::cv_code<T>::value >::type
|
||||
tag;
|
||||
|
||||
|
@ -81,14 +81,16 @@ BOOST_PP_EXPAND(#) include BOOST_FT_AL_PREPROCESSED
|
||||
# include <boost/preprocessor/repetition/enum_trailing_params.hpp>
|
||||
# endif
|
||||
|
||||
# define BOOST_FT_AL_INCLUDE_FILE <BOOST_FT_al_path/master.hpp>
|
||||
|
||||
# define BOOST_FT_ARITY_LOOP_PREFIX 1
|
||||
# include BOOST_PP_EXPAND(<BOOST_FT_al_path/master.hpp>)
|
||||
# include BOOST_FT_AL_INCLUDE_FILE
|
||||
# undef BOOST_FT_ARITY_LOOP_PREFIX
|
||||
|
||||
# if !BOOST_PP_IS_ITERATING
|
||||
# define BOOST_PP_FILENAME_1 <BOOST_FT_al_path/master.hpp>
|
||||
# define BOOST_PP_FILENAME_1 BOOST_FT_AL_INCLUDE_FILE
|
||||
# elif BOOST_PP_ITERATION_DEPTH() == 1
|
||||
# define BOOST_PP_FILENAME_2 <BOOST_FT_al_path/master.hpp>
|
||||
# define BOOST_PP_FILENAME_2 BOOST_FT_AL_INCLUDE_FILE
|
||||
# else
|
||||
# error "loops nested too deeply"
|
||||
# endif
|
||||
@ -133,8 +135,10 @@ BOOST_PP_EXPAND(#) include BOOST_FT_AL_PREPROCESSED
|
||||
# undef BOOST_FT_type
|
||||
|
||||
# define BOOST_FT_ARITY_LOOP_SUFFIX 1
|
||||
# include BOOST_PP_EXPAND(<BOOST_FT_al_path/master.hpp>)
|
||||
# include BOOST_FT_AL_INCLUDE_FILE
|
||||
# undef BOOST_FT_ARITY_LOOP_SUFFIX
|
||||
|
||||
# undef BOOST_FT_AL_INCLUDE_FILE
|
||||
# endif
|
||||
|
||||
# undef BOOST_FT_FROM_ARITY
|
||||
|
@ -37,6 +37,37 @@
|
||||
# define BOOST_PP_ITERATION_LIMITS \
|
||||
(0,BOOST_PP_SEQ_SIZE(BOOST_FT_CC_NAMES_SEQ)-1)
|
||||
# include BOOST_PP_ITERATE()
|
||||
# if !defined(BOOST_FT_config_valid) && BOOST_FT_CC_PREPROCESSING
|
||||
# define BOOST_FT_cc_id 1
|
||||
# define BOOST_FT_cc_name implicit_cc
|
||||
# define BOOST_FT_cc BOOST_PP_EMPTY
|
||||
# define BOOST_FT_cond callable_builtin
|
||||
# include BOOST_FT_cc_file
|
||||
# undef BOOST_FT_cond
|
||||
# undef BOOST_FT_cc_name
|
||||
# undef BOOST_FT_cc
|
||||
# undef BOOST_FT_cc_id
|
||||
# elif !defined(BOOST_FT_config_valid) // and generating preprocessed file
|
||||
BOOST_PP_EXPAND(#) ifndef BOOST_FT_config_valid
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_cc_id 1
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_cc_name implicit_cc
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_cc BOOST_PP_EMPTY
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_cond callable_builtin
|
||||
#define _()
|
||||
BOOST_PP_EXPAND(#) include BOOST_FT_cc_file
|
||||
#undef _
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_cond
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_cc_name
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_cc
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_cc_id
|
||||
BOOST_PP_EXPAND(#) else
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_config_valid
|
||||
BOOST_PP_EXPAND(#) endif
|
||||
|
||||
# else
|
||||
# undef BOOST_FT_config_valid
|
||||
# endif
|
||||
|
||||
# include <boost/function_types/detail/encoding/aliases_undef.hpp>
|
||||
# include <boost/function_types/detail/encoding/undef.hpp>
|
||||
|
||||
@ -53,7 +84,8 @@
|
||||
# define BOOST_FT_cond BOOST_PP_CAT(BOOST_FT_CC_,BOOST_FT_cc_pp_name)
|
||||
|
||||
# if BOOST_FT_cond
|
||||
# include BOOST_PP_EXPAND(<BOOST_FT_cc_file>)
|
||||
# define BOOST_FT_config_valid 1
|
||||
# include BOOST_FT_cc_file
|
||||
# endif
|
||||
|
||||
# undef BOOST_FT_cond
|
||||
@ -87,8 +119,9 @@ BOOST_PP_EXPAND(#) define BOOST_FT_cond BOOST_FT_cc_cond_v
|
||||
# undef BOOST_FT_cc_inf
|
||||
|
||||
BOOST_PP_EXPAND(#) if BOOST_FT_cond
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_config_valid 1
|
||||
#define _()
|
||||
BOOST_PP_EXPAND(#) include BOOST_PP_EXPAND _()(<BOOST_FT_cc_file>)
|
||||
BOOST_PP_EXPAND(#) include BOOST_FT_cc_file
|
||||
#undef _
|
||||
BOOST_PP_EXPAND(#) endif
|
||||
|
||||
|
@ -14,7 +14,8 @@
|
||||
# define BOOST_FT_cc BOOST_PP_EMPTY
|
||||
# define BOOST_FT_cond BOOST_FT_CC_IMPLICIT
|
||||
# if BOOST_FT_cond
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
|
||||
# define BOOST_FT_config_valid 1
|
||||
# include BOOST_FT_cc_file
|
||||
# endif
|
||||
# undef BOOST_FT_cond
|
||||
# undef BOOST_FT_cc_name
|
||||
@ -25,7 +26,8 @@
|
||||
# define BOOST_FT_cc BOOST_PP_IDENTITY(__cdecl )
|
||||
# define BOOST_FT_cond BOOST_FT_CC_CDECL
|
||||
# if BOOST_FT_cond
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
|
||||
# define BOOST_FT_config_valid 1
|
||||
# include BOOST_FT_cc_file
|
||||
# endif
|
||||
# undef BOOST_FT_cond
|
||||
# undef BOOST_FT_cc_name
|
||||
@ -36,7 +38,8 @@
|
||||
# define BOOST_FT_cc BOOST_PP_IDENTITY(__stdcall )
|
||||
# define BOOST_FT_cond BOOST_FT_CC_STDCALL
|
||||
# if BOOST_FT_cond
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
|
||||
# define BOOST_FT_config_valid 1
|
||||
# include BOOST_FT_cc_file
|
||||
# endif
|
||||
# undef BOOST_FT_cond
|
||||
# undef BOOST_FT_cc_name
|
||||
@ -47,7 +50,8 @@
|
||||
# define BOOST_FT_cc BOOST_PP_IDENTITY(pascal )
|
||||
# define BOOST_FT_cond BOOST_FT_CC_PASCAL
|
||||
# if BOOST_FT_cond
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
|
||||
# define BOOST_FT_config_valid 1
|
||||
# include BOOST_FT_cc_file
|
||||
# endif
|
||||
# undef BOOST_FT_cond
|
||||
# undef BOOST_FT_cc_name
|
||||
@ -58,7 +62,8 @@
|
||||
# define BOOST_FT_cc BOOST_PP_IDENTITY(__fastcall)
|
||||
# define BOOST_FT_cond BOOST_FT_CC_FASTCALL
|
||||
# if BOOST_FT_cond
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
|
||||
# define BOOST_FT_config_valid 1
|
||||
# include BOOST_FT_cc_file
|
||||
# endif
|
||||
# undef BOOST_FT_cond
|
||||
# undef BOOST_FT_cc_name
|
||||
@ -69,7 +74,8 @@
|
||||
# define BOOST_FT_cc BOOST_PP_IDENTITY(__clrcall )
|
||||
# define BOOST_FT_cond BOOST_FT_CC_CLRCALL
|
||||
# if BOOST_FT_cond
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
|
||||
# define BOOST_FT_config_valid 1
|
||||
# include BOOST_FT_cc_file
|
||||
# endif
|
||||
# undef BOOST_FT_cond
|
||||
# undef BOOST_FT_cc_name
|
||||
@ -80,7 +86,8 @@
|
||||
# define BOOST_FT_cc BOOST_PP_IDENTITY(__thiscall)
|
||||
# define BOOST_FT_cond BOOST_FT_CC_THISCALL
|
||||
# if BOOST_FT_cond
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
|
||||
# define BOOST_FT_config_valid 1
|
||||
# include BOOST_FT_cc_file
|
||||
# endif
|
||||
# undef BOOST_FT_cond
|
||||
# undef BOOST_FT_cc_name
|
||||
@ -91,9 +98,23 @@
|
||||
# define BOOST_FT_cc BOOST_PP_EMPTY
|
||||
# define BOOST_FT_cond BOOST_FT_CC_IMPLICIT_THISCALL
|
||||
# if BOOST_FT_cond
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_cc_file> )
|
||||
# define BOOST_FT_config_valid 1
|
||||
# include BOOST_FT_cc_file
|
||||
# endif
|
||||
# undef BOOST_FT_cond
|
||||
# undef BOOST_FT_cc_name
|
||||
# undef BOOST_FT_cc
|
||||
# undef BOOST_FT_cc_id
|
||||
# ifndef BOOST_FT_config_valid
|
||||
# define BOOST_FT_cc_id 1
|
||||
# define BOOST_FT_cc_name implicit_cc
|
||||
# define BOOST_FT_cc BOOST_PP_EMPTY
|
||||
# define BOOST_FT_cond 0x00000001
|
||||
# include BOOST_FT_cc_file
|
||||
# undef BOOST_FT_cond
|
||||
# undef BOOST_FT_cc_name
|
||||
# undef BOOST_FT_cc
|
||||
# undef BOOST_FT_cc_id
|
||||
# else
|
||||
# undef BOOST_FT_config_valid
|
||||
# endif
|
||||
|
@ -28,9 +28,9 @@
|
||||
#if defined(BOOST_FT_al_path)
|
||||
|
||||
# define BOOST_FT_cc_file \
|
||||
boost/function_types/detail/pp_variate_loop/preprocessed.hpp
|
||||
<boost/function_types/detail/pp_variate_loop/preprocessed.hpp>
|
||||
# define BOOST_FT_variate_file \
|
||||
boost/function_types/detail/pp_arity_loop.hpp
|
||||
<boost/function_types/detail/pp_arity_loop.hpp>
|
||||
|
||||
# ifndef BOOST_FT_type_function
|
||||
# define BOOST_FT_type_function(cc,name) BOOST_FT_SYNTAX( \
|
||||
|
@ -30,8 +30,8 @@ namespace detail
|
||||
# include BOOST_PP_ASSIGN_SLOT(1)
|
||||
|
||||
BOOST_STATIC_CONSTANT(bits_t, value = (
|
||||
::boost::function_types::detail::bits<Tag>::value & BOOST_FT_default_cc
|
||||
| ::boost::function_types::detail::bits<RefTag>::value & BOOST_PP_SLOT(1)
|
||||
(::boost::function_types::detail::bits<Tag>::value & BOOST_FT_default_cc)
|
||||
| (::boost::function_types::detail::bits<RefTag>::value & BOOST_PP_SLOT(1))
|
||||
));
|
||||
};
|
||||
|
||||
|
@ -15,8 +15,8 @@ namespace detail
|
||||
template<class Tag, class RefTag> struct selector_bits
|
||||
{
|
||||
BOOST_STATIC_CONSTANT(bits_t, value = (
|
||||
::boost::function_types::detail::bits<Tag> ::value & 0x00008000
|
||||
| ::boost::function_types::detail::bits<RefTag> ::value & 802
|
||||
(::boost::function_types::detail::bits<Tag> ::value & 0x00008000)
|
||||
| (::boost::function_types::detail::bits<RefTag> ::value & 802)
|
||||
));
|
||||
};
|
||||
template<bits_t SelectorBits> struct default_cc_tag;
|
||||
|
@ -82,7 +82,7 @@ namespace detail {
|
||||
);
|
||||
|
||||
BOOST_STATIC_CONSTANT(bits_t, combined_bits =
|
||||
LHS_bits & ~RHS_mask | RHS_bits
|
||||
(LHS_bits & ~RHS_mask) | RHS_bits
|
||||
);
|
||||
|
||||
BOOST_STATIC_CONSTANT(bits_t, combined_mask =
|
||||
|
@ -53,7 +53,7 @@ BOOST_STATIC_CONSTANT(bool, match =
|
||||
RHS_bits == (LHS_bits & RHS_mask & (RHS_bits | ~0x000000ff))
|
||||
);
|
||||
BOOST_STATIC_CONSTANT(bits_t, combined_bits =
|
||||
LHS_bits & ~RHS_mask | RHS_bits
|
||||
(LHS_bits & ~RHS_mask) | RHS_bits
|
||||
);
|
||||
BOOST_STATIC_CONSTANT(bits_t, combined_mask =
|
||||
LHS_mask | RHS_mask
|
||||
|
@ -140,7 +140,7 @@ BOOST_PP_EXPAND(#) define BOOST_FT_cv const volatile
|
||||
# endif
|
||||
# endif
|
||||
BOOST_PP_EXPAND(#) define BOOST_FT_flags BOOST_PP_SLOT(1)
|
||||
BOOST_PP_EXPAND(#) include BOOST_PP_EXPAND BOOST_PP_EMPTY()(<BOOST_FT_variate_file>)
|
||||
BOOST_PP_EXPAND(#) include BOOST_FT_variate_file
|
||||
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_cv
|
||||
BOOST_PP_EXPAND(#) undef BOOST_FT_ell
|
||||
|
@ -15,7 +15,7 @@
|
||||
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# define BOOST_FT_cv
|
||||
# define BOOST_FT_flags 519
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# include BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
@ -28,7 +28,7 @@
|
||||
# define BOOST_FT_nullary_param
|
||||
# define BOOST_FT_cv
|
||||
# define BOOST_FT_flags 263
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# include BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
@ -42,7 +42,7 @@
|
||||
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# define BOOST_FT_cv const
|
||||
# define BOOST_FT_flags 1543
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# include BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
@ -55,7 +55,7 @@
|
||||
# define BOOST_FT_nullary_param
|
||||
# define BOOST_FT_cv const
|
||||
# define BOOST_FT_flags 1287
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# include BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
@ -68,7 +68,7 @@
|
||||
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# define BOOST_FT_cv volatile
|
||||
# define BOOST_FT_flags 2567
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# include BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
@ -81,7 +81,7 @@
|
||||
# define BOOST_FT_nullary_param
|
||||
# define BOOST_FT_cv volatile
|
||||
# define BOOST_FT_flags 2311
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# include BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
@ -94,7 +94,7 @@
|
||||
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# define BOOST_FT_cv const volatile
|
||||
# define BOOST_FT_flags 3591
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# include BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
@ -107,7 +107,7 @@
|
||||
# define BOOST_FT_nullary_param
|
||||
# define BOOST_FT_cv const volatile
|
||||
# define BOOST_FT_flags 3335
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# include BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
@ -123,7 +123,7 @@
|
||||
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# define BOOST_FT_cv
|
||||
# define BOOST_FT_flags 523
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# include BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
@ -136,7 +136,7 @@
|
||||
# define BOOST_FT_nullary_param
|
||||
# define BOOST_FT_cv
|
||||
# define BOOST_FT_flags 267
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# include BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
@ -151,7 +151,7 @@
|
||||
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# define BOOST_FT_cv
|
||||
# define BOOST_FT_flags 531
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# include BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
@ -164,7 +164,7 @@
|
||||
# define BOOST_FT_nullary_param
|
||||
# define BOOST_FT_cv
|
||||
# define BOOST_FT_flags 275
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# include BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
@ -181,7 +181,7 @@
|
||||
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# define BOOST_FT_cv
|
||||
# define BOOST_FT_flags 609
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# include BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
@ -194,7 +194,7 @@
|
||||
# define BOOST_FT_nullary_param
|
||||
# define BOOST_FT_cv
|
||||
# define BOOST_FT_flags 353
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# include BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
@ -207,7 +207,7 @@
|
||||
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# define BOOST_FT_cv const
|
||||
# define BOOST_FT_flags 1633
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# include BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
@ -220,7 +220,7 @@
|
||||
# define BOOST_FT_nullary_param
|
||||
# define BOOST_FT_cv const
|
||||
# define BOOST_FT_flags 1377
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# include BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
@ -233,7 +233,7 @@
|
||||
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# define BOOST_FT_cv volatile
|
||||
# define BOOST_FT_flags 2657
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# include BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
@ -246,7 +246,7 @@
|
||||
# define BOOST_FT_nullary_param
|
||||
# define BOOST_FT_cv volatile
|
||||
# define BOOST_FT_flags 2401
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# include BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
@ -259,7 +259,7 @@
|
||||
# define BOOST_FT_nullary_param BOOST_FT_NULLARY_PARAM
|
||||
# define BOOST_FT_cv const volatile
|
||||
# define BOOST_FT_flags 3681
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# include BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
@ -272,7 +272,7 @@
|
||||
# define BOOST_FT_nullary_param
|
||||
# define BOOST_FT_cv const volatile
|
||||
# define BOOST_FT_flags 3425
|
||||
# include BOOST_PP_EXPAND ( <BOOST_FT_variate_file> )
|
||||
# include BOOST_FT_variate_file
|
||||
# undef BOOST_FT_cv
|
||||
# undef BOOST_FT_ell
|
||||
# undef BOOST_FT_nullary_param
|
||||
|
@ -24,10 +24,10 @@ namespace boost
|
||||
< function_types::components<T>
|
||||
, detail::member_object_pointer_tag >
|
||||
{
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(2,is_member_object_pointer,(T,Tag))
|
||||
BOOST_MPL_AUX_LAMBDA_SUPPORT(1,is_member_object_pointer,(T))
|
||||
};
|
||||
}
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(2,function_types::is_member_object_pointer)
|
||||
BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,function_types::is_member_object_pointer)
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -141,7 +141,7 @@ template<class Tag, class QueryTag> struct extract
|
||||
#include <boost/function_types/detail/pp_tags/preprocessed.hpp>
|
||||
|
||||
namespace boost { namespace function_types {
|
||||
#define BOOST_FT_cc_file boost/function_types/detail/pp_tags/cc_tag.hpp
|
||||
#define BOOST_FT_cc_file <boost/function_types/detail/pp_tags/cc_tag.hpp>
|
||||
#include <boost/function_types/detail/pp_loop.hpp>
|
||||
} } // namespace boost::function_types
|
||||
|
||||
|
14
index.html
Normal file
14
index.html
Normal file
@ -0,0 +1,14 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="refresh" content="0; URL=doc/html/index.html">
|
||||
</head>
|
||||
<body>
|
||||
<p>Automatic redirection failed, please go to
|
||||
<a href="doc/html/index.html">doc/html/index.html</a>.</p>
|
||||
<p>Copyright Tobias Schwinger 2005-2007</p>
|
||||
<p>Distributed under the Boost Software License, Version 1.0. (See accompanying file <a href="../../LICENSE_1_0.txt">
|
||||
LICENSE_1_0.txt</a> or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a>).</p>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -6,11 +6,17 @@
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#define BOOST_FT_AUTODETECT_CALLING_CONVENTIONS
|
||||
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/mpl/vector.hpp>
|
||||
#include <boost/function_types/member_function_pointer.hpp>
|
||||
#include <boost/function_types/is_callable_builtin.hpp>
|
||||
|
||||
#ifndef BOOST_FT_CC_STDCALL
|
||||
# error "test not supported with this compiler/platform"
|
||||
#endif
|
||||
|
||||
namespace ft = boost::function_types;
|
||||
namespace mpl = boost::mpl;
|
||||
|
||||
|
@ -6,11 +6,17 @@
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#define BOOST_FT_AUTODETECT_CALLING_CONVENTIONS
|
||||
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/mpl/vector.hpp>
|
||||
#include <boost/function_types/member_function_pointer.hpp>
|
||||
#include <boost/function_types/is_callable_builtin.hpp>
|
||||
|
||||
#ifndef BOOST_FT_CC_STDCALL
|
||||
# error "test not supported with this compiler/platform"
|
||||
#endif
|
||||
|
||||
namespace ft = boost::function_types;
|
||||
namespace mpl = boost::mpl;
|
||||
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#define BOOST_FT_AUTODETECT_CALLING_CONVENTIONS
|
||||
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/mpl/vector.hpp>
|
||||
#include <boost/function_types/function_type.hpp>
|
||||
@ -13,6 +15,10 @@
|
||||
#include <boost/function_types/function_reference.hpp>
|
||||
#include <boost/function_types/is_callable_builtin.hpp>
|
||||
|
||||
#ifndef BOOST_FT_CC_STDCALL
|
||||
# error "test not supported with this compiler/platform"
|
||||
#endif
|
||||
|
||||
namespace ft = boost::function_types;
|
||||
namespace mpl = boost::mpl;
|
||||
|
||||
|
@ -6,6 +6,8 @@
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
#define BOOST_FT_AUTODETECT_CALLING_CONVENTIONS
|
||||
|
||||
#include <boost/mpl/assert.hpp>
|
||||
#include <boost/mpl/vector.hpp>
|
||||
#include <boost/function_types/function_type.hpp>
|
||||
@ -13,6 +15,10 @@
|
||||
#include <boost/function_types/function_reference.hpp>
|
||||
#include <boost/function_types/is_callable_builtin.hpp>
|
||||
|
||||
#ifndef BOOST_FT_CC_STDCALL
|
||||
# error "test not supported with this compiler/platform"
|
||||
#endif
|
||||
|
||||
namespace ft = boost::function_types;
|
||||
namespace mpl = boost::mpl;
|
||||
|
||||
|
@ -24,7 +24,7 @@ typedef C (C::*mem_func_ptr)(C,int);
|
||||
typedef C (C::*c_mem_func_ptr)(C,C) const;
|
||||
typedef C (C::*v_mem_func_ptr)(C) volatile;
|
||||
typedef C (C::*cv_mem_func_ptr)() const volatile;
|
||||
|
||||
typedef C C::*mem_ptr;
|
||||
|
||||
BOOST_MPL_ASSERT((
|
||||
mpl::equal< ft::parameter_types<func>, mpl::vector<C> >
|
||||
@ -54,3 +54,6 @@ BOOST_MPL_ASSERT((
|
||||
mpl::equal< ft::parameter_types<cv_mem_func_ptr>, mpl::vector<C const volatile &> >
|
||||
));
|
||||
|
||||
BOOST_MPL_ASSERT((
|
||||
mpl::equal< ft::parameter_types<mem_ptr>, mpl::vector<C &> >
|
||||
));
|
||||
|
@ -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