1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2<html> 3<head> 4<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 5<title>Concept CallableTransform</title> 6<link rel="stylesheet" href="../../doc/src/boostbook.css" type="text/css"> 7<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 8<link rel="home" href="index.html" title="The Boost C++ Libraries BoostBook Documentation Subset"> 9<link rel="up" href="proto/reference.html" title="Reference"> 10<link rel="prev" href="boost/proto/context/null_context/eval.html" title="Struct template eval"> 11<link rel="next" href="Domain.html" title="Concept Domain"> 12</head> 13<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 14<table cellpadding="2" width="100%"><tr> 15<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../boost.png"></td> 16<td align="center"><a href="../../index.html">Home</a></td> 17<td align="center"><a href="../../libs/libraries.htm">Libraries</a></td> 18<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> 19<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> 20<td align="center"><a href="../../more/index.htm">More</a></td> 21</tr></table> 22<hr> 23<div class="spirit-nav"> 24<a accesskey="p" href="boost/proto/context/null_context/eval.html"><img src="../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="proto/reference.html"><img src="../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="Domain.html"><img src="../../doc/src/images/next.png" alt="Next"></a> 25</div> 26<div class="refentry"> 27<a name="CallableTransform"></a><div class="titlepage"></div> 28<div class="refnamediv"> 29<h2><span class="refentrytitle">Concept CallableTransform</span></h2> 30<p>CallableTransform</p> 31</div> 32<div class="refsect1"> 33<a name="id-1.3.33.5.59.3"></a><h2>Description</h2> 34<p> 35 A CallableTransform is a function type or a function 36 pointer type where the return type Fn is a 37 PolymorphicFunctionObject and the arguments are 38 Transforms. is_callable< Fn >::value 39 must be true. The CallableTransform, when applied, 40 has the effect of invoking the polymorphic function 41 object Fn, passing as arguments the result(s) 42 of applying transform(s) Tn. 43 </p> 44</div> 45<div class="refsect1"> 46<a name="id-1.3.33.5.59.4"></a><h2>Associated types</h2> 47<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 48<p><span class="bold"><strong>result_type</strong></span></p> 49<pre class="literallayout">boost::result_of<Fn(Transform<Tn, Expr, State, Data>::result_type...)>::type</pre> 50<p> 51 </p> 52<p>The result of applying the CallableTransform.</p> 53<p> 54 </p> 55</li></ul></div> 56</div> 57<div class="refsect1"> 58<a name="id-1.3.33.5.59.5"></a><h2>Notation</h2> 59<div class="variablelist"><dl class="variablelist"> 60<dt><span class="term">Fn</span></dt> 61<dd>A type playing the role of polymorphic-function-object-type in the <a class="link" href="CallableTransform.html" title="Concept CallableTransform">CallableTransform</a> concept.</dd> 62<dt><span class="term">Tn</span></dt> 63<dd>A type playing the role of transform-type in the <a class="link" href="CallableTransform.html" title="Concept CallableTransform">CallableTransform</a> concept.</dd> 64<dt><span class="term">Expr</span></dt> 65<dd>A type playing the role of expression-type in the <a class="link" href="CallableTransform.html" title="Concept CallableTransform">CallableTransform</a> concept.</dd> 66<dt><span class="term">State</span></dt> 67<dd>A type playing the role of state-type in the <a class="link" href="CallableTransform.html" title="Concept CallableTransform">CallableTransform</a> concept.</dd> 68<dt><span class="term">Data</span></dt> 69<dd>A type playing the role of data-type in the <a class="link" href="CallableTransform.html" title="Concept CallableTransform">CallableTransform</a> concept.</dd> 70<dt><span class="term"><code class="varname">fn</code></span></dt> 71<dd>Object of type Fn</dd> 72<dt><span class="term"><code class="varname">expr</code></span></dt> 73<dd>Object of type Expr</dd> 74<dt><span class="term"><code class="varname">state</code></span></dt> 75<dd>Object of type State</dd> 76<dt><span class="term"><code class="varname">data</code></span></dt> 77<dd>Object of type Data</dd> 78</dl></div> 79</div> 80<div class="refsect1"> 81<a name="id-1.3.33.5.59.6"></a><h2>Valid expressions</h2> 82<div class="informaltable"><table class="table"> 83<colgroup> 84<col> 85<col> 86<col> 87<col> 88</colgroup> 89<thead><tr> 90<th>Name</th> 91<th>Expression</th> 92<th>Type</th> 93<th>Semantics</th> 94</tr></thead> 95<tbody><tr> 96<td><p>Apply Transform</p></td> 97<td><p>when< _, Fn(Tn...)>()(expr, state, data)</p></td> 98<td><p><span class="type">result_type</span></p></td> 99<td><p>Applies the transform.</p></td> 100</tr></tbody> 101</table></div> 102</div> 103<div class="refsect1"> 104<a name="id-1.3.33.5.59.7"></a><h2>Models</h2> 105<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><span class="simplelist"><span class="type">boost::proto::_child(boost::proto::_left)</span></span></li></ul></div> 106</div> 107</div> 108<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 109<td align="left"></td> 110<td align="right"><div class="copyright-footer">Copyright © 2008 Eric Niebler<p> 111 Distributed under the Boost Software License, Version 1.0. (See accompanying 112 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>) 113 </p> 114</div></td> 115</tr></table> 116<hr> 117<div class="spirit-nav"> 118<a accesskey="p" href="boost/proto/context/null_context/eval.html"><img src="../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="proto/reference.html"><img src="../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="index.html"><img src="../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="Domain.html"><img src="../../doc/src/images/next.png" alt="Next"></a> 119</div> 120</body> 121</html> 122