﻿<?xml version="1.0" encoding="utf-8"?>
<header name="boost/proto/deep_copy.hpp">
  <para>Replace all nodes stored by reference by nodes stored by value.</para>
  <namespace name="boost">
    <namespace name="proto">

      <namespace name="result_of">
        <!-- proto::result_of::deep_copy -->
        <struct name="deep_copy">
          <template>
            <template-type-parameter name="Expr"/>
          </template>
          <purpose>A metafunction for calculating the return type of <computeroutput>
            <functionname alt="proto::deep_copy">proto::deep_copy()</functionname></computeroutput>.</purpose>
          <description>
            <para>
              A metafunction for calculating the return type of <computeroutput>
              <functionname alt="proto::deep_copy">proto::deep_copy()</functionname></computeroutput>. The type
              parameter <computeroutput>Expr</computeroutput> should be the type of a Proto expression tree.
              It should not be a reference type, nor should it be cv-qualified.
            </para>
          </description>
          <typedef name="type">
            <type><emphasis>unspecified</emphasis></type>
          </typedef>
        </struct>
      </namespace>

      <namespace name="functional">
        <!-- proto::functional::deep_copy -->
        <struct name="deep_copy">
          <inherit>
            <type><classname>proto::callable</classname></type>
          </inherit>
          <purpose>A <conceptname>PolymorphicFunctionObject</conceptname> type for deep-copying Proto
            expression trees.</purpose>
          <description>
            <para>
              A <conceptname>PolymorphicFunctionObject</conceptname> type for deep-copying Proto expression trees.
              When a tree is deep-copied, all internal nodes and terminals held by reference are instead held by value.
              The only exception is function references, which continue to be held by reference.
            </para>
          </description>
          <struct-specialization name="result">
            <template>
              <template-type-parameter name="This"/>
              <template-type-parameter name="Expr"/>
            </template>
            <specialization>
              <template-arg>This(Expr)</template-arg>
            </specialization>
            <inherit>
              <type><classname>result_of::deep_copy</classname>&lt;Expr&gt;</type>
            </inherit>
          </struct-specialization>
          <method-group name="public member functions">
            <method name="operator()" cv="const">
              <type><classname>result_of::deep_copy</classname>&lt;Expr&gt;::type</type>
              <template>
                <template-type-parameter name="Expr"/>
              </template>
              <parameter name="expr">
                <paramtype>Expr const &amp;</paramtype>
              </parameter>
              <purpose>Deep-copies a Proto expression tree, turning all nodes and terminals held by
                reference into ones held by value.</purpose>
            </method>
          </method-group>
        </struct>
      </namespace>

      <!-- proto::deep_copy() -->
      <function name="deep_copy">
        <type>typename <classname>proto::result_of::deep_copy</classname>&lt;Expr&gt;::type</type>
        <template>
          <template-type-parameter name="Expr"/>
        </template>
        <parameter name="expr">
          <paramtype>Expr const &amp;</paramtype>
        </parameter>
        <purpose>A function for deep-copying Proto expression trees. </purpose>
        <description>
          <para>
            A function for deep-copying Proto expression trees. When a tree is deep-copied, all internal
            nodes and terminals held by reference are instead held by value.</para>
        </description>
        <notes>
          <para>
            Terminals of reference-to-function type are left unchanged.
          </para>
          <para>
            Equivalent to <computeroutput><classname>proto::functional::deep_copy</classname>()(expr)
            </computeroutput>.
          </para>
        </notes>
      </function>
    </namespace>
  </namespace>
</header>
