<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Struct template make_expr</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../index.html" title="The Boost C++ Libraries BoostBook Documentation Subset">
<link rel="up" href="../../../proto/reference.html#header.boost.proto.make_expr_hpp" title="Header &lt;boost/proto/make_expr.hpp&gt;">
<link rel="prev" href="../functional/unpack_expr/result_This_Sequence__id1265003.html" title="Struct template result&lt;This(Sequence)&gt;">
<link rel="next" href="make_expr_Tag__Domain___id1265249.html" title="Struct template make_expr&lt;Tag, Domain, A...&gt;">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<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="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">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="../functional/unpack_expr/result_This_Sequence__id1265003.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../proto/reference.html#header.boost.proto.make_expr_hpp"><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="make_expr_Tag__Domain___id1265249.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="refentry">
<a name="boost.proto.result_of.make_expr"></a><div class="titlepage"></div>
<div class="refnamediv">
<h2><span class="refentrytitle">Struct template make_expr</span></h2>
<p>boost::proto::result_of::make_expr &#8212; Metafunction that computes the return type of the
            <code class="computeroutput"><a class="link" href="../make_expr_id1265715.html" title="Function make_expr">proto::make_expr()</a></code>
            function, with a domain deduced from the domains of the children.</p>
</div>
<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="comment">// In header: &lt;<a class="link" href="../../../proto/reference.html#header.boost.proto.make_expr_hpp" title="Header &lt;boost/proto/make_expr.hpp&gt;">boost/proto/make_expr.hpp</a>&gt;

</span><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> Tag<span class="special">,</span> <span class="keyword">typename</span><span class="special">...</span> A<span class="special">&gt;</span> 
<span class="keyword">struct</span> <a class="link" href="make_expr.html" title="Struct template make_expr">make_expr</a> <span class="special">{</span>
  <span class="comment">// <a class="link" href="make_expr.html#boost.proto.result_of.make_exprtypes">types</a></span>
  <span class="keyword">typedef</span> <em class="replaceable"><code><span class="identifier">domain</span><span class="special">-</span><span class="identifier">deduced</span><span class="special">-</span><span class="identifier">from</span><span class="special">-</span><span class="identifier">child</span><span class="special">-</span><span class="identifier">types</span></code></em> <a class="link" href="make_expr.html#boost.proto.result_of.make_expr.D"><span class="identifier">D</span></a><span class="special">;</span>
  <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="link" href="make_expr.html" title="Struct template make_expr">proto::result_of::make_expr</a><span class="special">&lt;</span><span class="identifier">Tag</span><span class="special">,</span> <span class="identifier">D</span><span class="special">,</span> <span class="identifier">A</span><span class="special">...</span><span class="special">&gt;</span><span class="special">::</span><span class="identifier">type</span> <a name="boost.proto.result_of.make_expr.type"></a><span class="identifier">type</span><span class="special">;</span>
<span class="special">}</span><span class="special">;</span></pre></div>
<div class="refsect1">
<a name="id2303883"></a><h2>Description</h2>
<p>
              Computes the return type of the
              <code class="computeroutput"><a class="link" href="../make_expr_id1265715.html" title="Function make_expr">proto::make_expr()</a></code> function.
            </p>
<p>
              In this specialization, the domain is deduced from the domains of the child types.
              If <code class="computeroutput"><a class="link" href="../is_domain.html" title="Struct template is_domain">proto::is_domain</a>&lt;A<sub>0</sub>&gt;::value</code>
              is <code class="computeroutput">true</code>, then another specialization is selected.
            </p>
<div class="refsect2">
<a name="id2303931"></a><h3>
<a name="boost.proto.result_of.make_exprtypes"></a><code class="computeroutput">make_expr</code> 
        public
       types</h3>
<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
<p>
<span class="keyword">typedef</span> <em class="replaceable"><code><span class="identifier">domain</span><span class="special">-</span><span class="identifier">deduced</span><span class="special">-</span><span class="identifier">from</span><span class="special">-</span><span class="identifier">child</span><span class="special">-</span><span class="identifier">types</span></code></em> <a name="boost.proto.result_of.make_expr.D"></a><span class="identifier">D</span><span class="special">;</span></p>
<p>
                In this specialization, Proto uses the domains of the child expressions to compute the
                domain of the parent. See
                <code class="computeroutput"><a class="link" href="../deduce_domain.html" title="Struct deduce_domain">proto::deduce_domain</a></code> for a full
                description of the procedure used.
              </p>
</li></ol></div>
</div>
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2008 Eric Niebler<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="../functional/unpack_expr/result_This_Sequence__id1265003.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../../proto/reference.html#header.boost.proto.make_expr_hpp"><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="make_expr_Tag__Domain___id1265249.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
