$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r60505 - in branches/release: . boost boost/algorithm/string boost/archive boost/bimap boost/config boost/detail boost/filesystem boost/functional/hash boost/fusion boost/graph boost/integer boost/interprocess boost/intrusive boost/iostreams boost/math boost/numeric/ublas boost/program_options boost/property_tree boost/proto boost/proto/detail boost/proto/transform boost/python boost/regex boost/signals boost/signals2 boost/spirit boost/spirit/home boost/spirit/home/karma boost/spirit/home/support boost/statechart boost/system boost/thread boost/tr1 boost/type_traits boost/unordered boost/utility boost/uuid boost/variant boost/wave doc libs libs/array/doc libs/bimap libs/config libs/filesystem libs/functional/hash libs/fusion libs/graph_parallel libs/integer libs/interprocess libs/intrusive libs/iostreams libs/math libs/mpl/doc/refmanual libs/mpl/doc/src/refmanual libs/numeric/ublas libs/numeric/ublas/doc libs/program_options libs/property_tree libs/proto/doc libs/proto/doc/reference libs/proto/doc/reference/concepts libs/python libs/regex libs/regex/doc libs/signals libs/signals2 libs/spirit libs/spirit/classic/example libs/spirit/doc libs/spirit/example libs/spirit/phoenix libs/spirit/test libs/spirit/test/qi libs/statechart libs/static_assert libs/system libs/thread libs/thread/doc libs/timer libs/tr1 libs/type_traits libs/unordered libs/utility libs/uuid libs/wave more people status tools tools/bcp tools/boostbook tools/build/v2 tools/inspect tools/quickbook tools/regression tools/release tools/wave wiki
From: eric_at_[hidden]
Date: 2010-03-12 00:51:48
Author: eric_niebler
Date: 2010-03-12 00:51:46 EST (Fri, 12 Mar 2010)
New Revision: 60505
URL: http://svn.boost.org/trac/boost/changeset/60505
Log:
Merged revisions 60403,60452-60453 via svnmerge from 
https://svn.boost.org/svn/boost/trunk
........
  r60403 | eric_niebler | 2010-03-10 13:03:20 +1100 (Wed, 10 Mar 2010) | 1 line
  
  do not use deprecated config macros, thx to daniel james
........
  r60452 | eric_niebler | 2010-03-11 12:07:19 +1100 (Thu, 11 Mar 2010) | 1 line
  
  adding concepts for Expr and Domain
........
  r60453 | eric_niebler | 2010-03-11 12:08:47 +1100 (Thu, 11 Mar 2010) | 1 line
  
  oops, fix properties
........
Added:
   branches/release/libs/proto/doc/reference/concepts/Domain.xml   (contents, props changed)
      - copied, changed from r60453, /trunk/libs/proto/doc/reference/concepts/Domain.xml
   branches/release/libs/proto/doc/reference/concepts/Expr.xml   (contents, props changed)
      - copied, changed from r60453, /trunk/libs/proto/doc/reference/concepts/Expr.xml
Properties modified: 
   branches/release/   (props changed)
   branches/release/CMakeLists.txt   (props changed)
   branches/release/INSTALL   (props changed)
   branches/release/Jamroot   (props changed)
   branches/release/LICENSE_1_0.txt   (props changed)
   branches/release/boost/   (props changed)
   branches/release/boost-build.jam   (props changed)
   branches/release/boost.css   (props changed)
   branches/release/boost.png   (props changed)
   branches/release/boost/algorithm/string/   (props changed)
   branches/release/boost/archive/   (props changed)
   branches/release/boost/array.hpp   (props changed)
   branches/release/boost/bimap/   (props changed)
   branches/release/boost/config/   (props changed)
   branches/release/boost/detail/   (props changed)
   branches/release/boost/filesystem/   (props changed)
   branches/release/boost/functional/hash/   (props changed)
   branches/release/boost/fusion/   (props changed)
   branches/release/boost/graph/   (props changed)
   branches/release/boost/integer/   (props changed)
   branches/release/boost/interprocess/   (props changed)
   branches/release/boost/intrusive/   (props changed)
   branches/release/boost/iostreams/   (props changed)
   branches/release/boost/math/   (props changed)
   branches/release/boost/numeric/ublas/   (props changed)
   branches/release/boost/program_options/   (props changed)
   branches/release/boost/property_tree/   (props changed)
   branches/release/boost/python/   (props changed)
   branches/release/boost/regex/   (props changed)
   branches/release/boost/signals/   (props changed)
   branches/release/boost/signals2/   (props changed)
   branches/release/boost/spirit/   (props changed)
   branches/release/boost/spirit/home/   (props changed)
   branches/release/boost/spirit/home/karma/   (props changed)
   branches/release/boost/spirit/home/support/attributes.hpp   (props changed)
   branches/release/boost/statechart/   (props changed)
   branches/release/boost/system/   (props changed)
   branches/release/boost/thread/   (props changed)
   branches/release/boost/thread.hpp   (props changed)
   branches/release/boost/tr1/   (props changed)
   branches/release/boost/type_traits/   (props changed)
   branches/release/boost/unordered/   (props changed)
   branches/release/boost/utility/   (props changed)
   branches/release/boost/utility/value_init.hpp   (props changed)
   branches/release/boost/uuid/   (props changed)
   branches/release/boost/variant/   (props changed)
   branches/release/boost/version.hpp   (props changed)
   branches/release/boost/wave/   (props changed)
   branches/release/bootstrap.bat   (props changed)
   branches/release/bootstrap.sh   (props changed)
   branches/release/doc/   (props changed)
   branches/release/index.htm   (props changed)
   branches/release/index.html   (props changed)
   branches/release/libs/   (props changed)
   branches/release/libs/array/doc/array.xml   (props changed)
   branches/release/libs/bimap/   (props changed)
   branches/release/libs/config/   (props changed)
   branches/release/libs/filesystem/   (props changed)
   branches/release/libs/functional/hash/   (props changed)
   branches/release/libs/fusion/   (props changed)
   branches/release/libs/graph_parallel/   (props changed)
   branches/release/libs/integer/   (props changed)
   branches/release/libs/interprocess/   (props changed)
   branches/release/libs/intrusive/   (props changed)
   branches/release/libs/iostreams/   (props changed)
   branches/release/libs/libraries.htm   (props changed)
   branches/release/libs/maintainers.txt   (props changed)
   branches/release/libs/math/   (props changed)
   branches/release/libs/mpl/doc/refmanual/broken-compiler-workarounds.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/categorized-index-concepts.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/cfg-no-preprocessed-headers.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/composition-and-argument-binding.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/data-types-concepts.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/data-types-miscellaneous.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/extensible-associative-sequence.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/inserter-class.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/tag-dispatched-metafunction.html   (props changed)
   branches/release/libs/mpl/doc/refmanual/trivial-metafunctions-summary.html   (props changed)
   branches/release/libs/mpl/doc/src/refmanual/Iterators-Iterator.rst   (props changed)
   branches/release/libs/numeric/ublas/   (props changed)
   branches/release/libs/numeric/ublas/doc/   (props changed)
   branches/release/libs/program_options/   (props changed)
   branches/release/libs/property_tree/   (props changed)
   branches/release/libs/python/   (props changed)
   branches/release/libs/regex/   (props changed)
   branches/release/libs/regex/doc/   (props changed)
   branches/release/libs/signals/   (props changed)
   branches/release/libs/signals2/   (props changed)
   branches/release/libs/spirit/   (props changed)
   branches/release/libs/spirit/classic/example/   (props changed)
   branches/release/libs/spirit/doc/   (props changed)
   branches/release/libs/spirit/example/   (props changed)
   branches/release/libs/spirit/phoenix/   (props changed)
   branches/release/libs/spirit/test/   (props changed)
   branches/release/libs/spirit/test/qi/optional.cpp   (props changed)
   branches/release/libs/statechart/   (props changed)
   branches/release/libs/static_assert/   (props changed)
   branches/release/libs/system/   (props changed)
   branches/release/libs/thread/   (props changed)
   branches/release/libs/thread/doc/   (props changed)
   branches/release/libs/timer/   (props changed)
   branches/release/libs/tr1/   (props changed)
   branches/release/libs/type_traits/   (props changed)
   branches/release/libs/unordered/   (props changed)
   branches/release/libs/utility/   (props changed)
   branches/release/libs/utility/swap.html   (props changed)
   branches/release/libs/utility/value_init.htm   (props changed)
   branches/release/libs/utility/value_init_test.cpp   (props changed)
   branches/release/libs/uuid/   (props changed)
   branches/release/libs/wave/   (props changed)
   branches/release/more/   (props changed)
   branches/release/people/   (props changed)
   branches/release/rst.css   (props changed)
   branches/release/status/   (props changed)
   branches/release/status/Jamfile.v2   (props changed)
   branches/release/tools/   (props changed)
   branches/release/tools/bcp/   (props changed)
   branches/release/tools/boostbook/   (props changed)
   branches/release/tools/build/v2/   (props changed)
   branches/release/tools/inspect/   (props changed)
   branches/release/tools/quickbook/   (props changed)
   branches/release/tools/regression/   (props changed)
   branches/release/tools/release/   (props changed)
   branches/release/tools/wave/   (props changed)
   branches/release/wiki/   (props changed)
Text files modified: 
   branches/release/boost/proto/detail/decltype.hpp              |     2                                         
   branches/release/boost/proto/domain.hpp                       |     1                                         
   branches/release/boost/proto/extends.hpp                      |     6                                         
   branches/release/boost/proto/generate.hpp                     |     2                                         
   branches/release/boost/proto/matches.hpp                      |     4                                         
   branches/release/boost/proto/traits.hpp                       |     4                                         
   branches/release/boost/proto/transform/arg.hpp                |    10                                         
   branches/release/boost/proto/transform/pass_through.hpp       |     2                                         
   branches/release/libs/proto/doc/acknowledgements.qbk          |     3                                         
   branches/release/libs/proto/doc/reference.xml                 |     5                                         
   branches/release/libs/proto/doc/reference/concepts/Domain.xml |   210 ++++++++++++++--------------            
   branches/release/libs/proto/doc/reference/concepts/Expr.xml   |   282 ++++++++++++++++++++--------------------
   branches/release/libs/proto/doc/reference/domain.xml          |     3                                         
   13 files changed, 271 insertions(+), 263 deletions(-)
Modified: branches/release/boost/proto/detail/decltype.hpp
==============================================================================
--- branches/release/boost/proto/detail/decltype.hpp	(original)
+++ branches/release/boost/proto/detail/decltype.hpp	2010-03-12 00:51:46 EST (Fri, 12 Mar 2010)
@@ -35,7 +35,7 @@
 #include <boost/utility/enable_if.hpp>
 #include <boost/proto/repeat.hpp>
 
-#ifdef BOOST_HAS_DECLTYPE
+#ifndef BOOST_NO_DECLTYPE
 # define BOOST_PROTO_DECLTYPE_(EXPR, TYPE) typedef decltype(EXPR) TYPE;
 #else
 # define BOOST_PROTO_DECLTYPE_NESTED_TYPEDEF_TPL_(NESTED, EXPR)                                     \
Modified: branches/release/boost/proto/domain.hpp
==============================================================================
--- branches/release/boost/proto/domain.hpp	(original)
+++ branches/release/boost/proto/domain.hpp	2010-03-12 00:51:46 EST (Fri, 12 Mar 2010)
@@ -80,6 +80,7 @@
         struct domain
           : Generator
         {
+            typedef Generator proto_generator;
             typedef Grammar proto_grammar;
 
             /// INTERNAL ONLY
Modified: branches/release/boost/proto/extends.hpp
==============================================================================
--- branches/release/boost/proto/extends.hpp	(original)
+++ branches/release/boost/proto/extends.hpp	2010-03-12 00:51:46 EST (Fri, 12 Mar 2010)
@@ -357,7 +357,7 @@
         };                                                                                          \
         /**/
 
-    #ifdef BOOST_HAS_VARIADIC_TMPL
+    #ifndef BOOST_NO_VARIADIC_TEMPLATES
         #define BOOST_PROTO_EXTENDS_FUNCTION_CONST()                                                \
             BOOST_PROTO_EXTENDS_FUNCTION_()                                                         \
             BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(1)                                             \
@@ -473,7 +473,7 @@
             // the operator() overloads, which is more efficient.
             BOOST_PROTO_EXTENDS_FUNCTION_()
 
-        #ifdef BOOST_HAS_VARIADIC_TMPL
+        #ifndef BOOST_NO_VARIADIC_TEMPLATES
             BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(1)
         #else
             /// INTERNAL ONLY
@@ -516,7 +516,7 @@
             // the operator() overloads, which is more efficient.
             BOOST_PROTO_EXTENDS_FUNCTION_()
 
-        #ifdef BOOST_HAS_VARIADIC_TMPL
+        #ifndef BOOST_NO_VARIADIC_TEMPLATES
             BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(0)
             BOOST_PROTO_DEFINE_FUN_OP_VARIADIC_IMPL_(1)
         #else
Modified: branches/release/boost/proto/generate.hpp
==============================================================================
--- branches/release/boost/proto/generate.hpp	(original)
+++ branches/release/boost/proto/generate.hpp	2010-03-12 00:51:46 EST (Fri, 12 Mar 2010)
@@ -99,7 +99,7 @@
                 /// \param expr A Proto expression
                 /// \return expr
                 template<typename Expr>
-                #ifdef BOOST_HAS_DECLTYPE
+                #ifndef BOOST_NO_DECLTYPE
                 Expr
                 #else
                 Expr const &
Modified: branches/release/boost/proto/matches.hpp
==============================================================================
--- branches/release/boost/proto/matches.hpp	(original)
+++ branches/release/boost/proto/matches.hpp	2010-03-12 00:51:46 EST (Fri, 12 Mar 2010)
@@ -570,7 +570,7 @@
 
                     /// \param expr An expression
                     /// \return \c e
-                    #ifdef BOOST_HAS_DECLTYPE
+                    #ifndef BOOST_NO_DECLTYPE
                     result_type
                     #else
                     typename impl::expr_param 
@@ -609,7 +609,7 @@
                     /// \param e An expression
                     /// \pre <tt>matches\<Expr,not_\>::::value</tt> is \c true.
                     /// \return \c e
-                    #ifdef BOOST_HAS_DECLTYPE
+                    #ifndef BOOST_NO_DECLTYPE
                     result_type
                     #else
                     typename impl::expr_param 
Modified: branches/release/boost/proto/traits.hpp
==============================================================================
--- branches/release/boost/proto/traits.hpp	(original)
+++ branches/release/boost/proto/traits.hpp	2010-03-12 00:51:46 EST (Fri, 12 Mar 2010)
@@ -542,7 +542,7 @@
                     /// \pre <tt>matches\<Expr, terminal\<T\> \>::::value</tt> is \c true.
                     /// \return \c e
                     /// \throw nothrow
-                    #ifdef BOOST_HAS_DECLTYPE
+                    #ifndef BOOST_NO_DECLTYPE
                     result_type
                     #else
                     typename impl::expr_param
@@ -612,7 +612,7 @@
                     /// \pre <tt>matches\<Expr, nullary_expr\<Tag, T\> \>::::value</tt> is \c true.
                     /// \return \c e
                     /// \throw nothrow
-                    #ifdef BOOST_HAS_DECLTYPE
+                    #ifndef BOOST_NO_DECLTYPE
                     result_type
                     #else
                     typename impl::expr_param
Modified: branches/release/boost/proto/transform/arg.hpp
==============================================================================
--- branches/release/boost/proto/transform/arg.hpp	(original)
+++ branches/release/boost/proto/transform/arg.hpp	2010-03-12 00:51:46 EST (Fri, 12 Mar 2010)
@@ -38,7 +38,7 @@
             /// \param e The current expression.
             /// \return \c e
             /// \throw nothrow
-            #ifdef BOOST_HAS_DECLTYPE
+            #ifndef BOOST_NO_DECLTYPE
             result_type
             #else
             typename impl::expr_param 
@@ -75,7 +75,7 @@
             /// \param s The current state.
             /// \return \c s
             /// \throw nothrow
-            #ifdef BOOST_HAS_DECLTYPE
+            #ifndef BOOST_NO_DECLTYPE
             result_type
             #else
             typename impl::state_param 
@@ -113,7 +113,7 @@
             /// \param d The current data.
             /// \return \c d
             /// \throw nothrow
-            #ifdef BOOST_HAS_DECLTYPE
+            #ifndef BOOST_NO_DECLTYPE
             result_type
             #else
             typename impl::data_param 
@@ -154,7 +154,7 @@
             /// \param e The current expression.
             /// \return <tt>proto::child_c\<N\>(e)</tt>
             /// \throw nothrow
-            #ifdef BOOST_HAS_DECLTYPE
+            #ifndef BOOST_NO_DECLTYPE
             result_type
             #else
             typename result_of::child_c<typename impl::expr_param, N>::type
@@ -194,7 +194,7 @@
             /// \param e The current expression.
             /// \return <tt>proto::value(e)</tt>
             /// \throw nothrow
-            #ifdef BOOST_HAS_DECLTYPE
+            #ifndef BOOST_NO_DECLTYPE
             typename mpl::if_c<is_array<result_type>::value, result_type &, result_type>::type
             #else
             typename result_of::value<typename impl::expr_param>::type
Modified: branches/release/boost/proto/transform/pass_through.hpp
==============================================================================
--- branches/release/boost/proto/transform/pass_through.hpp	(original)
+++ branches/release/boost/proto/transform/pass_through.hpp	2010-03-12 00:51:46 EST (Fri, 12 Mar 2010)
@@ -67,7 +67,7 @@
                 /// \param e An expression
                 /// \return \c e
                 /// \throw nothrow
-                #ifdef BOOST_HAS_DECLTYPE
+                #ifndef BOOST_NO_DECLTYPE
                 result_type
                 #else
                 typename pass_through_impl::expr_param 
Modified: branches/release/libs/proto/doc/acknowledgements.qbk
==============================================================================
--- branches/release/libs/proto/doc/acknowledgements.qbk	(original)
+++ branches/release/libs/proto/doc/acknowledgements.qbk	2010-03-12 00:51:46 EST (Fri, 12 Mar 2010)
@@ -12,6 +12,9 @@
 little more than a vision. Their requirements and feedback have been
 indespensable.
 
+Thanks to Daniel James for providing a patch to remove the dependence on
+deprecated configuration macros for C++0x features.
+
 Thanks also to the developers of _PETE_. I found many good ideas there.
 
 [endsect]
Modified: branches/release/libs/proto/doc/reference.xml
==============================================================================
--- branches/release/libs/proto/doc/reference.xml	(original)
+++ branches/release/libs/proto/doc/reference.xml	2010-03-12 00:51:46 EST (Fri, 12 Mar 2010)
@@ -1040,11 +1040,12 @@
   <xi:include href="reference/context/null.xml"/>
 
   <!-- concepts -->
-  <!--<xi:include href="reference/concepts/BasicPrimitiveTransform.xml"/>-->
   <xi:include href="reference/concepts/CallableTransform.xml"/>
+  <xi:include href="reference/concepts/Domain.xml"/>
+  <xi:include href="reference/concepts/Expr.xml"/>
   <xi:include href="reference/concepts/ObjectTransform.xml"/>
+  <xi:include href="reference/concepts/PolymorphicFunctionObject.xml"/>
   <xi:include href="reference/concepts/PrimitiveTransform.xml"/>
   <xi:include href="reference/concepts/Transform.xml"/>
-  <xi:include href="reference/concepts/PolymorphicFunctionObject.xml"/>
 
 </library-reference>
Copied: branches/release/libs/proto/doc/reference/concepts/Domain.xml (from r60453, /trunk/libs/proto/doc/reference/concepts/Domain.xml)
==============================================================================
--- /trunk/libs/proto/doc/reference/concepts/Domain.xml	(original)
+++ branches/release/libs/proto/doc/reference/concepts/Domain.xml	2010-03-12 00:51:46 EST (Fri, 12 Mar 2010)
@@ -1,105 +1,105 @@
-<?xml version="1.0" ?>
-<concept name="Domain" category="utility">
-  <!--
-  Copyright 2010 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="Domain" role="domain-type" />
-  <param name="Expr" role="expression-type" />
-
-  <models-sentence>
-    The type <arg num="1" /> must be a model of <self/>. It also
-    models Unary Polymorphic Function.
-  </models-sentence>
-
-  <models-sentence>
-    The type <arg num="2" /> must be a model of <conceptname>Expr</conceptname>
-  </models-sentence>
-
-  <description>
-    <para>
-      A Domain creates an association between expressions and a so-called
-      generator, which is a function that maps an expression in the default
-      domain to an equivalent expression in this Domain. It also associates
-      an expression with a grammar, to which all expressions within this
-      Domain must conform.
-    </para>
-  </description>
-
-  <notation variables="d">
-    <sample-value>
-      <type name="Domain" />
-    </sample-value>
-  </notation>
-
-  <notation variables="e">
-    <sample-value>
-      <type name="Expr" />
-    </sample-value>
-  </notation>
-
-  <associated-type name="proto_grammar">
-    <get-member-type name="proto_grammar">
-      <type name="Domain"/>
-    </get-member-type>
-    <description>
-      <simpara>The grammar to which every expression in this Domain
-        must conform.</simpara>
-    </description>
-  </associated-type>
-
-  <associated-type name="proto_generator">
-    <get-member-type name="proto_generator">
-      <type name="Domain"/>
-    </get-member-type>
-    <description>
-      <simpara>
-        A Unary Polymorphic Function that accepts expressions in the
-        default domain and emits expressions in this Domain.
-      </simpara>
-    </description>
-  </associated-type>
-
-  <associated-type name="result_type">
-    <get-member-type name="type">
-      <apply-template name="boost::result_of">
-        <type name="Domain(Expr)"/>
-      </apply-template>
-    </get-member-type>
-    <description>
-      <simpara>
-        The type of the result of applying
-        <computeroutput>proto_generator</computeroutput> to
-        the specified expression type. The result is required to
-        model <conceptname>Expr</conceptname>. The domain type
-        associated with <computeroutput>result_type</computeroutput>
-        is required to be the same type as this Domain.
-      </simpara>
-    </description>
-  </associated-type>
-
-  <valid-expression name="Apply Generator">
-    <apply-function name="d">
-      <sample-value>
-        <type name="Expr"/>
-      </sample-value>
-    </apply-function>
-    <return-type>
-      <require-same-type testable="yes">
-        <type name="result_type"/>
-      </require-same-type>
-    </return-type>
-    <semantics>
-      The result of applying <computeroutput>proto_generator</computeroutput>
-      to the specified expression.
-    </semantics>
-  </valid-expression>
-
-  <example-model>
-    <type name="boost::proto::default_domain" />
-  </example-model>
-
-</concept>
+<?xml version="1.0" ?>
+<concept name="Domain" category="utility">
+  <!--
+  Copyright 2010 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="Domain" role="domain-type" />
+  <param name="Expr" role="expression-type" />
+
+  <models-sentence>
+    The type <arg num="1" /> must be a model of <self/>. It also
+    models Unary Polymorphic Function.
+  </models-sentence>
+
+  <models-sentence>
+    The type <arg num="2" /> must be a model of <conceptname>Expr</conceptname>
+  </models-sentence>
+
+  <description>
+    <para>
+      A Domain creates an association between expressions and a so-called
+      generator, which is a function that maps an expression in the default
+      domain to an equivalent expression in this Domain. It also associates
+      an expression with a grammar, to which all expressions within this
+      Domain must conform.
+    </para>
+  </description>
+
+  <notation variables="d">
+    <sample-value>
+      <type name="Domain" />
+    </sample-value>
+  </notation>
+
+  <notation variables="e">
+    <sample-value>
+      <type name="Expr" />
+    </sample-value>
+  </notation>
+
+  <associated-type name="proto_grammar">
+    <get-member-type name="proto_grammar">
+      <type name="Domain"/>
+    </get-member-type>
+    <description>
+      <simpara>The grammar to which every expression in this Domain
+        must conform.</simpara>
+    </description>
+  </associated-type>
+
+  <associated-type name="proto_generator">
+    <get-member-type name="proto_generator">
+      <type name="Domain"/>
+    </get-member-type>
+    <description>
+      <simpara>
+        A Unary Polymorphic Function that accepts expressions in the
+        default domain and emits expressions in this Domain.
+      </simpara>
+    </description>
+  </associated-type>
+
+  <associated-type name="result_type">
+    <get-member-type name="type">
+      <apply-template name="boost::result_of">
+        <type name="Domain(Expr)"/>
+      </apply-template>
+    </get-member-type>
+    <description>
+      <simpara>
+        The type of the result of applying
+        <computeroutput>proto_generator</computeroutput> to
+        the specified expression type. The result is required to
+        model <conceptname>Expr</conceptname>. The domain type
+        associated with <computeroutput>result_type</computeroutput>
+        is required to be the same type as this Domain.
+      </simpara>
+    </description>
+  </associated-type>
+
+  <valid-expression name="Apply Generator">
+    <apply-function name="d">
+      <sample-value>
+        <type name="Expr"/>
+      </sample-value>
+    </apply-function>
+    <return-type>
+      <require-same-type testable="yes">
+        <type name="result_type"/>
+      </require-same-type>
+    </return-type>
+    <semantics>
+      The result of applying <computeroutput>proto_generator</computeroutput>
+      to the specified expression.
+    </semantics>
+  </valid-expression>
+
+  <example-model>
+    <type name="boost::proto::default_domain" />
+  </example-model>
+
+</concept>
Copied: branches/release/libs/proto/doc/reference/concepts/Expr.xml (from r60453, /trunk/libs/proto/doc/reference/concepts/Expr.xml)
==============================================================================
--- /trunk/libs/proto/doc/reference/concepts/Expr.xml	(original)
+++ branches/release/libs/proto/doc/reference/concepts/Expr.xml	2010-03-12 00:51:46 EST (Fri, 12 Mar 2010)
@@ -1,141 +1,141 @@
-<?xml version="1.0" ?>
-<concept name="Expr" category="utility">
-  <!--
-  Copyright 2010 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="Expr" role="expession-type" />
-  <param name="Tag" role="tag-type" />
-  <param name="Domain" role="domain-type" />
-  <param name="N" role="mpl-integral-constant-type" />
-
-  <models-sentence>
-    The type <arg num="1" /> must be a model of <self/>.
-  </models-sentence>
-
-  <models-sentence>
-    The type <arg num="3" /> must be a model of <conceptname>Domain</conceptname>.
-  </models-sentence>
-
-  <models-sentence>
-    The type <arg num="4" /> must be a model of MPL Integral Constant.
-  </models-sentence>
-
-  <description>
-    <para>
-      An Expr represents a tagged node in an expression tree.
-      The children of the Expr must themselves satisfy the
-      Expr concept. The Expr has an arity representing the
-      number of children. If the number of children is zero,
-      the Expr also has a value. An Expr also has an associated
-      <conceptname>Domain</conceptname>.
-    </para>
-  </description>
-
-  <notation variables="e">
-    <sample-value>
-      <type name="Expr" />
-    </sample-value>
-  </notation>
-
-  <associated-type name="proto_tag">
-    <get-member-type name="type">
-      <apply-template name="boost::proto::tag_of">
-        <type name="Expr"/>
-      </apply-template>
-    </get-member-type>
-    <description>
-      <simpara>The tag type of the Expr.</simpara>
-    </description>
-  </associated-type>
-
-  <associated-type name="proto_arity">
-    <get-member-type name="type">
-      <apply-template name="boost::proto::arity_of">
-        <type name="Expr"/>
-      </apply-template>
-    </get-member-type>
-    <description>
-      <simpara>
-        The arity (number of child nodes) of the Expr.
-        <computeroutput>proto_arity</computeroutput> is an MPL Integral Constant.
-      </simpara>
-    </description>
-  </associated-type>
-
-  <associated-type name="proto_domain">
-    <get-member-type name="type">
-      <apply-template name="boost::proto::domain_of">
-        <type name="Expr"/>
-      </apply-template>
-    </get-member-type>
-    <description>
-      <simpara>
-        The Domain of the Expr. <computeroutput>proto_domain</computeroutput>
-        models <conceptname>Domain</conceptname>.
-      </simpara>
-    </description>
-  </associated-type>
-
-  <associated-type name="childN_type">
-    <get-member-type name="type">
-      <apply-template name="boost::proto::result_of::child">
-        <type name="Expr"/>
-        <type name="N"/>
-      </apply-template>
-    </get-member-type>
-    <description>
-      <simpara>The Nth child of Expr.</simpara>
-    </description>
-  </associated-type>
-
-  <associated-type name="value_type">
-    <get-member-type name="type">
-      <apply-template name="boost::proto::result_of::value">
-        <type name="Expr"/>
-      </apply-template>
-    </get-member-type>
-    <description>
-      <simpara>The value of a terminal Expr.
-        Requires <computeroutput>0 == proto_arity::value</computeroutput>.</simpara>
-    </description>
-  </associated-type>
-
-  <valid-expression name="Get N-th Child">
-    <apply-function name="boost::proto::child< N >">
-      <sample-value>
-        <type name="Expr" />
-      </sample-value>
-    </apply-function>
-    <return-type>
-      <require-same-type testable="yes">
-        <type name="childN_type"/>
-      </require-same-type>
-    </return-type>
-    <semantics>Extracts the Nth child from this Expr.
-      Requires <computeroutput>N::value < proto_arity::value</computeroutput>.</semantics>
-  </valid-expression>
-
-  <valid-expression name="Get Terminal Value">
-    <apply-function name="boost::proto::value">
-      <sample-value>
-        <type name="Expr" />
-      </sample-value>
-    </apply-function>
-    <return-type>
-      <require-same-type testable="yes">
-        <type name="value_type"/>
-      </require-same-type>
-    </return-type>
-    <semantics>Extracts the value from a terminal Expr.
-      Requires <computeroutput>0 == proto_arity::value</computeroutput>.</semantics>
-  </valid-expression>
-
-  <example-model>
-    <type name="boost::proto::literal< int >" />
-  </example-model>
-
-</concept>
+<?xml version="1.0" ?>
+<concept name="Expr" category="utility">
+  <!--
+  Copyright 2010 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="Expr" role="expession-type" />
+  <param name="Tag" role="tag-type" />
+  <param name="Domain" role="domain-type" />
+  <param name="N" role="mpl-integral-constant-type" />
+
+  <models-sentence>
+    The type <arg num="1" /> must be a model of <self/>.
+  </models-sentence>
+
+  <models-sentence>
+    The type <arg num="3" /> must be a model of <conceptname>Domain</conceptname>.
+  </models-sentence>
+
+  <models-sentence>
+    The type <arg num="4" /> must be a model of MPL Integral Constant.
+  </models-sentence>
+
+  <description>
+    <para>
+      An Expr represents a tagged node in an expression tree.
+      The children of the Expr must themselves satisfy the
+      Expr concept. The Expr has an arity representing the
+      number of children. If the number of children is zero,
+      the Expr also has a value. An Expr also has an associated
+      <conceptname>Domain</conceptname>.
+    </para>
+  </description>
+
+  <notation variables="e">
+    <sample-value>
+      <type name="Expr" />
+    </sample-value>
+  </notation>
+
+  <associated-type name="proto_tag">
+    <get-member-type name="type">
+      <apply-template name="boost::proto::tag_of">
+        <type name="Expr"/>
+      </apply-template>
+    </get-member-type>
+    <description>
+      <simpara>The tag type of the Expr.</simpara>
+    </description>
+  </associated-type>
+
+  <associated-type name="proto_arity">
+    <get-member-type name="type">
+      <apply-template name="boost::proto::arity_of">
+        <type name="Expr"/>
+      </apply-template>
+    </get-member-type>
+    <description>
+      <simpara>
+        The arity (number of child nodes) of the Expr.
+        <computeroutput>proto_arity</computeroutput> is an MPL Integral Constant.
+      </simpara>
+    </description>
+  </associated-type>
+
+  <associated-type name="proto_domain">
+    <get-member-type name="type">
+      <apply-template name="boost::proto::domain_of">
+        <type name="Expr"/>
+      </apply-template>
+    </get-member-type>
+    <description>
+      <simpara>
+        The Domain of the Expr. <computeroutput>proto_domain</computeroutput>
+        models <conceptname>Domain</conceptname>.
+      </simpara>
+    </description>
+  </associated-type>
+
+  <associated-type name="childN_type">
+    <get-member-type name="type">
+      <apply-template name="boost::proto::result_of::child">
+        <type name="Expr"/>
+        <type name="N"/>
+      </apply-template>
+    </get-member-type>
+    <description>
+      <simpara>The Nth child of Expr.</simpara>
+    </description>
+  </associated-type>
+
+  <associated-type name="value_type">
+    <get-member-type name="type">
+      <apply-template name="boost::proto::result_of::value">
+        <type name="Expr"/>
+      </apply-template>
+    </get-member-type>
+    <description>
+      <simpara>The value of a terminal Expr.
+        Requires <computeroutput>0 == proto_arity::value</computeroutput>.</simpara>
+    </description>
+  </associated-type>
+
+  <valid-expression name="Get N-th Child">
+    <apply-function name="boost::proto::child< N >">
+      <sample-value>
+        <type name="Expr" />
+      </sample-value>
+    </apply-function>
+    <return-type>
+      <require-same-type testable="yes">
+        <type name="childN_type"/>
+      </require-same-type>
+    </return-type>
+    <semantics>Extracts the Nth child from this Expr.
+      Requires <computeroutput>N::value < proto_arity::value</computeroutput>.</semantics>
+  </valid-expression>
+
+  <valid-expression name="Get Terminal Value">
+    <apply-function name="boost::proto::value">
+      <sample-value>
+        <type name="Expr" />
+      </sample-value>
+    </apply-function>
+    <return-type>
+      <require-same-type testable="yes">
+        <type name="value_type"/>
+      </require-same-type>
+    </return-type>
+    <semantics>Extracts the value from a terminal Expr.
+      Requires <computeroutput>0 == proto_arity::value</computeroutput>.</semantics>
+  </valid-expression>
+
+  <example-model>
+    <type name="boost::proto::literal< int >" />
+  </example-model>
+
+</concept>
Modified: branches/release/libs/proto/doc/reference/domain.xml
==============================================================================
--- branches/release/libs/proto/doc/reference/domain.xml	(original)
+++ branches/release/libs/proto/doc/reference/domain.xml	2010-03-12 00:51:46 EST (Fri, 12 Mar 2010)
@@ -64,6 +64,9 @@
         <typedef name="proto_grammar">
           <type>Grammar</type>
         </typedef>
+        <typedef name="proto_generator">
+          <type>Generator</type>
+        </typedef>
       </struct>
 
       <!-- proto::default_domain -->