$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: eric_at_[hidden]
Date: 2008-06-19 22:08:58
Author: eric_niebler
Date: 2008-06-19 22:08:57 EDT (Thu, 19 Jun 2008)
New Revision: 46537
URL: http://svn.boost.org/trac/boost/changeset/46537
Log:
add missing file
Added:
   trunk/libs/xpressive/proto/doc/concepts/CallableTransform.xml   (contents, props changed)
Added: trunk/libs/xpressive/proto/doc/concepts/CallableTransform.xml
==============================================================================
--- (empty file)
+++ trunk/libs/xpressive/proto/doc/concepts/CallableTransform.xml	2008-06-19 22:08:57 EDT (Thu, 19 Jun 2008)
@@ -0,0 +1,90 @@
+<?xml version="1.0" ?>
+<concept name="CallableTransform" category="utility">
+  <!--
+  Copyright 2008 Eric Niebler
+
+  Distributed under 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)
+  -->
+  <param name="Fn" role="polymorphic-function-object-type" />
+  <param name="Tn" role="transform-type" />
+  <param name="Expr" role="expression-type" />
+  <param name="State" role="state-type" />
+  <param name="Visitor" role="visitor-type" />
+
+  <models-sentence>
+    The type <arg num="1" /> must be a model of <conceptname name="PolymorphicFunctionObject"/>.
+    The type <arg num="2" /> must be a model of <conceptname name="Transform"/>.
+  </models-sentence>
+
+  <description>
+    <para>
+      A CallableTransform is a function type or a function 
+      pointer type where the return type Fn is a 
+      PolymorphicFunctionObject and the arguments are 
+      Transforms. is_callable< Fn >::value
+      must be true.
+    </para>
+  </description>
+
+  <notation variables="fn">
+    <sample-value>
+      <type name="Fn" />
+    </sample-value>
+  </notation>
+
+  <notation variables="expr">
+    <sample-value>
+      <type name="Expr" />
+    </sample-value>
+  </notation>
+
+  <notation variables="state">
+    <sample-value>
+      <type name="State" />
+    </sample-value>
+  </notation>
+
+  <notation variables="visitor">
+    <sample-value>
+      <type name="Visitor" />
+    </sample-value>
+  </notation>
+
+  <associated-type name="result_type">
+    <get-member-type name="type">
+      <apply-template name="boost::result_of">
+        <type name="Fn(Transform<Tn, Expr, State, Visitor>::result_type...)"/>
+      </apply-template>
+    </get-member-type>
+    <description>
+      <simpara>The result of applying the CallableTransform.</simpara>
+    </description>
+  </associated-type>
+
+  <valid-expression name="Apply Transform">
+    <apply-function name="when< _, Fn(Tn...)>()">
+      <sample-value>
+        <type name="Expr" />
+      </sample-value>
+      <sample-value>
+        <type name="State" />
+      </sample-value>
+      <sample-value>
+        <type name="Visitor" />
+      </sample-value>
+    </apply-function>
+    <return-type>
+      <require-same-type testable="yes">
+        <type name="result_type"/>
+      </require-same-type>
+    </return-type>
+    <semantics>Applies the transform.</semantics>
+  </valid-expression>
+
+  <example-model>
+    <type name="boost::proto::transform::arg(boost::proto::transform::left)" />
+  </example-model>
+
+</concept>