$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: eric_at_[hidden]
Date: 2008-01-18 02:56:32
Author: eric_niebler
Date: 2008-01-18 02:56:31 EST (Fri, 18 Jan 2008)
New Revision: 42839
URL: http://svn.boost.org/trac/boost/changeset/42839
Log:
tweaks for better doxygen-ated output
Text files modified: 
   trunk/boost/xpressive/proto/context/default.hpp     |     4 ++--                                    
   trunk/boost/xpressive/proto/debug.hpp               |     2 +-                                      
   trunk/boost/xpressive/proto/fusion.hpp              |    12 ++++++------                            
   trunk/boost/xpressive/proto/make_expr.hpp           |    16 ++++++++--------                        
   trunk/boost/xpressive/proto/ref.hpp                 |     2 +-                                      
   trunk/boost/xpressive/proto/traits.hpp              |    12 ++++++------                            
   trunk/boost/xpressive/proto/transform/fold_tree.hpp |    39 +++++++++++++++++++-------------------- 
   7 files changed, 43 insertions(+), 44 deletions(-)
Modified: trunk/boost/xpressive/proto/context/default.hpp
==============================================================================
--- trunk/boost/xpressive/proto/context/default.hpp	(original)
+++ trunk/boost/xpressive/proto/context/default.hpp	2008-01-18 02:56:31 EST (Fri, 18 Jan 2008)
@@ -30,6 +30,8 @@
     #include <boost/xpressive/proto/traits.hpp> // for proto::arg_c()
     #include <boost/xpressive/proto/detail/suffix.hpp> // must be last include
 
+    namespace boost { namespace proto
+    {
     // If we're generating doxygen documentation, hide all the nasty
     // Boost.Typeof gunk.
     #ifndef BOOST_PROTO_DOXYGEN_INVOKED
@@ -61,8 +63,6 @@
     ///
     #define UNREF(x) typename boost::remove_reference<x>::type
 
-    namespace boost { namespace proto
-    {
         namespace detail
         {
             template<typename T> T make();
Modified: trunk/boost/xpressive/proto/debug.hpp
==============================================================================
--- trunk/boost/xpressive/proto/debug.hpp	(original)
+++ trunk/boost/xpressive/proto/debug.hpp	2008-01-18 02:56:31 EST (Fri, 18 Jan 2008)
@@ -20,7 +20,7 @@
 #include <boost/xpressive/proto/expr.hpp>
 #include <boost/xpressive/proto/traits.hpp>
 #else
-/// INTERNAL ONLY
+/// INTERNAL <> ONLY
 /// Needed to work around doxygen bug
 struct a_dummy_global;
 #endif
Modified: trunk/boost/xpressive/proto/fusion.hpp
==============================================================================
--- trunk/boost/xpressive/proto/fusion.hpp	(original)
+++ trunk/boost/xpressive/proto/fusion.hpp	2008-01-18 02:56:31 EST (Fri, 18 Jan 2008)
@@ -30,13 +30,13 @@
 #include <boost/xpressive/proto/eval.hpp>
 #include <boost/xpressive/proto/detail/suffix.hpp>
 
-/// INTERNAL ONLY
-///
-#define UNREF(x) typename boost::remove_reference<x>::type
-
 namespace boost { namespace proto
 {
 
+/// INTERNAL MACRO
+///
+#define UNREF(x) typename boost::remove_reference<x>::type
+
     namespace detail
     {
 
@@ -156,7 +156,7 @@
         {}
 
         template<typename Sig>
-        struct result {};
+        struct result;
 
         template<typename This, typename Expr>
         struct result<This(Expr)>
@@ -411,7 +411,7 @@
         struct as_element
         {
             template<typename Sig>
-            struct result {};
+            struct result;
 
             template<typename This, typename Expr>
             struct result<This(Expr)>
Modified: trunk/boost/xpressive/proto/make_expr.hpp
==============================================================================
--- trunk/boost/xpressive/proto/make_expr.hpp	(original)
+++ trunk/boost/xpressive/proto/make_expr.hpp	2008-01-18 02:56:31 EST (Fri, 18 Jan 2008)
@@ -77,6 +77,14 @@
     #endif
     #include <boost/xpressive/proto/detail/suffix.hpp>
 
+    namespace boost { namespace fusion
+    {
+        template<typename Function>
+        class unfused_generic;
+    }}
+
+    namespace boost { namespace proto
+    {
     /// INTERNAL ONLY
     ///
     #define BOOST_PROTO_AS_ARG_TYPE(Z, N, DATA)                                                     \
@@ -332,14 +340,6 @@
         )                                                                                           \
         /**/
 
-    namespace boost { namespace fusion
-    {
-        template<typename Function>
-        class unfused_generic;
-    }}
-
-    namespace boost { namespace proto
-    {
         namespace detail
         {
             template<
Modified: trunk/boost/xpressive/proto/ref.hpp
==============================================================================
--- trunk/boost/xpressive/proto/ref.hpp	(original)
+++ trunk/boost/xpressive/proto/ref.hpp	2008-01-18 02:56:31 EST (Fri, 18 Jan 2008)
@@ -137,7 +137,7 @@
         struct unref
         {
             template<typename T>
-            struct result {};
+            struct result;
 
             template<typename This, typename T>
             struct result<This(T)>
Modified: trunk/boost/xpressive/proto/traits.hpp
==============================================================================
--- trunk/boost/xpressive/proto/traits.hpp	(original)
+++ trunk/boost/xpressive/proto/traits.hpp	2008-01-18 02:56:31 EST (Fri, 18 Jan 2008)
@@ -388,7 +388,7 @@
             struct as_expr
             {
                 template<typename Sig>
-                struct result {};
+                struct result;
 
                 template<typename This, typename T>
                 struct result<This(T)>
@@ -430,7 +430,7 @@
             struct as_arg
             {
                 template<typename Sig>
-                struct result {};
+                struct result;
 
                 template<typename This, typename T>
                 struct result<This(T)>
@@ -456,7 +456,7 @@
             struct arg_c
             {
                 template<typename Sig>
-                struct result {};
+                struct result;
 
                 template<typename This, typename Expr>
                 struct result<This(Expr)>
@@ -480,7 +480,7 @@
             struct arg
             {
                 template<typename Sig>
-                struct result {};
+                struct result;
 
                 template<typename This, typename Expr>
                 struct result<This(Expr)>
@@ -503,7 +503,7 @@
             struct left
             {
                 template<typename Sig>
-                struct result {};
+                struct result;
 
                 template<typename This, typename Expr>
                 struct result<This(Expr)>
@@ -526,7 +526,7 @@
             struct right
             {
                 template<typename Sig>
-                struct result {};
+                struct result;
 
                 template<typename This, typename Expr>
                 struct result<This(Expr)>
Modified: trunk/boost/xpressive/proto/transform/fold_tree.hpp
==============================================================================
--- trunk/boost/xpressive/proto/transform/fold_tree.hpp	(original)
+++ trunk/boost/xpressive/proto/transform/fold_tree.hpp	2008-01-18 02:56:31 EST (Fri, 18 Jan 2008)
@@ -10,34 +10,39 @@
 #define BOOST_PROTO_TRANSFORM_FOLD_TREE_HPP_EAN_11_05_2007
 
 #include <boost/xpressive/proto/detail/prefix.hpp>
+#include <boost/type_traits/is_same.hpp>
 #include <boost/xpressive/proto/proto_fwd.hpp>
 #include <boost/xpressive/proto/traits.hpp>
+#include <boost/xpressive/proto/matches.hpp>
 #include <boost/xpressive/proto/transform/fold.hpp>
 #include <boost/xpressive/proto/detail/suffix.hpp>
 
 namespace boost { namespace proto
 {
-
     namespace transform
     {
-
         namespace detail
         {
+            template<typename Tag>
+            struct is_tag : callable
+            {
+                template<typename Sig>
+                struct result;
+
+                template<typename This, typename Expr, typename State, typename Visitor>
+                struct result<This(Expr, State, Visitor)>
+                  : is_same<Tag, typename Expr::proto_tag>
+                {};
+            };
 
-            template<typename Grammar, typename Fun>
+            template<typename Tag, typename Fun>
             struct fold_tree_
-              : or_<
-                    when<Grammar, fold<_, _state, fold_tree_<Grammar, Fun> > >
-                  , when<_, Fun>
-                >
+              : if_<is_tag<Tag>, fold<_, _state, fold_tree_<Tag, Fun> >, Fun>
             {};
 
-            template<typename Grammar, typename Fun>
+            template<typename Tag, typename Fun>
             struct reverse_fold_tree_
-              : or_<
-                    when<Grammar, reverse_fold<_, _state, reverse_fold_tree_<Grammar, Fun> > >
-                  , when<_, Fun>
-                >
+              : if_<is_tag<Tag>, reverse_fold<_, _state, reverse_fold_tree_<Tag, Fun> >, Fun>
             {};
         }
 
@@ -54,10 +59,7 @@
                 typedef fold<
                     Sequence
                   , State0
-                  , detail::fold_tree_<
-                        nary_expr<typename Expr::proto_tag, vararg<_> >
-                      , Fun
-                    >
+                  , detail::fold_tree_<typename Expr::proto_tag, Fun>
                 > impl;
 
                 typedef typename impl::template result<void(Expr, State, Visitor)>::type type;
@@ -85,10 +87,7 @@
                 typedef reverse_fold<
                     Sequence
                   , State0
-                  , detail::reverse_fold_tree_<
-                        nary_expr<typename Expr::proto_tag, vararg<_> >
-                      , Fun
-                    >
+                  , detail::reverse_fold_tree_<typename Expr::proto_tag, Fun>
                 > impl;
 
                 typedef typename impl::template result<void(Expr, State, Visitor)>::type type;