$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r68765 - in sandbox/tti/boost/tti: . detail
From: eldiener_at_[hidden]
Date: 2011-02-10 16:13:55
Author: eldiener
Date: 2011-02-10 16:13:53 EST (Thu, 10 Feb 2011)
New Revision: 68765
URL: http://svn.boost.org/trac/boost/changeset/68765
Log:
Use forwarding.
Text files modified: 
   sandbox/tti/boost/tti/TTIntrospection.hpp              |   146 +++++++++++++-------------------------- 
   sandbox/tti/boost/tti/detail/TTIntrospectionDetail.hpp |     3                                         
   2 files changed, 53 insertions(+), 96 deletions(-)
Modified: sandbox/tti/boost/tti/TTIntrospection.hpp
==============================================================================
--- sandbox/tti/boost/tti/TTIntrospection.hpp	(original)
+++ sandbox/tti/boost/tti/TTIntrospection.hpp	2011-02-10 16:13:53 EST (Thu, 10 Feb 2011)
@@ -50,21 +50,15 @@
     { \
     TTI_DETAIL_TRAIT_HAS_TYPE(trait,name) \
     } \
-  \
   template<class T,class U = tti::detail::notype> \
-  struct trait \
-    { \
-    \
-    typedef typename \
-      detail::trait \
+  struct trait : \
+    detail::trait \
       < \
       T, \
       U, \
       typename detail::mpl::trait<T>::type \
-      >::type \
-    type; \
-    \
-    BOOST_STATIC_CONSTANT(bool,value=type::value); \
+      > \
+    { \
     }; \
   } \
 /**/
@@ -93,23 +87,17 @@
     { \
     TTI_DETAIL_TRAIT_HAS_TYPE(trait,name) \
     } \
-  \
   struct trait \
     { \
     template<class T,class U = tti::detail::notype> \
-    struct apply \
-      { \
-      \
-      typedef typename \
-        detail::trait \
+    struct apply : \
+      detail::trait \
         < \
         T, \
         U, \
         typename detail::mpl::trait<T>::type \
-        >::type \
-      type; \
-      \
-      BOOST_STATIC_CONSTANT(bool,value=type::value); \
+        > \
+      { \
       }; \
     }; \
   } \
@@ -192,16 +180,14 @@
     TTI_DETAIL_TRAIT_MEMBER_TYPE(trait,name) \
     } \
   template<class T> \
-  struct trait \
+  struct trait : \
+    boost::mpl::eval_if \
+      < \
+      tti::detail::trait<T>, \
+      tti::detail::member_type::trait<T>, \
+      boost::mpl::identity<tti::detail::notype> \
+      > \
     { \
-    typedef typename \
-      boost::mpl::eval_if \
-        < \
-        tti::detail::trait<T>, \
-        tti::detail::member_type::trait<T>, \
-        boost::mpl::identity<tti::detail::notype> \
-        >::type \
-    type; \
     }; \
   } \
 /**/
@@ -237,16 +223,14 @@
   struct trait \
     { \
     template<class T> \
-    struct apply \
+    struct apply : \
+      boost::mpl::eval_if \
+        < \
+        tti::detail::trait<T>, \
+        tti::detail::member_type::trait<T>, \
+        boost::mpl::identity<tti::detail::notype> \
+        > \
       { \
-      typedef typename \
-        boost::mpl::eval_if \
-          < \
-          tti::detail::trait<T>, \
-          tti::detail::member_type::trait<T>, \
-          boost::mpl::identity<tti::detail::notype> \
-          >::type \
-      type; \
       }; \
     }; \
   } \
@@ -331,11 +315,9 @@
     BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(trait, name, false) \
     } \
   template<class T> \
-  struct trait \
+  struct trait : \
+    tti::detail::trait<T> \
     { \
-    typedef typename tti::detail::trait<T>::type type; \
-    \
-    BOOST_STATIC_CONSTANT(bool,value=type::value); \
     }; \
   } \
 /**/
@@ -367,11 +349,9 @@
   struct trait \
     { \
     template<class T> \
-    struct apply \
+    struct apply : \
+      tti::detail::trait<T> \
       { \
-      typedef typename tti::detail::trait<T>::type type; \
-      \
-      BOOST_STATIC_CONSTANT(bool,value=type::value); \
       }; \
     }; \
   } \
@@ -452,11 +432,9 @@
     TTI_DETAIL_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(trait,name,tpSeq) \
     } \
   template<class T> \
-  struct trait \
+  struct trait : \
+    detail::trait<T> \
     { \
-    typedef typename detail::trait<T>::type type; \
-    \
-    BOOST_STATIC_CONSTANT(bool,value=type::value); \
     }; \
   } \
 /**/
@@ -490,11 +468,9 @@
   struct trait \
     { \
     template<class T> \
-    struct apply \
+    struct apply : \
+      detail::trait::apply<T> \
       { \
-      typedef typename detail::trait::apply<T>::type type; \
-      \
-      BOOST_STATIC_CONSTANT(bool,value=type::value); \
       }; \
     }; \
   } \
@@ -578,12 +554,9 @@
     TTI_DETAIL_TRAIT_HAS_MEMBER(trait,name) \
     } \
   template<class T> \
-  struct trait \
+  struct trait : \
+    detail::trait<T> \
     { \
-    typedef typename detail::trait<T>::type type; \
-    \
-    BOOST_STATIC_CONSTANT(bool,value=type::value); \
-    \
     }; \
   } \
 /**/
@@ -614,12 +587,9 @@
   struct trait \
     { \
     template<class T> \
-    struct apply \
+    struct apply : \
+      detail::trait<T> \
       { \
-      typedef typename detail::trait<T>::type type; \
-      \
-      BOOST_STATIC_CONSTANT(bool,value=type::value); \
-      \
       }; \
     }; \
   } \
@@ -697,11 +667,9 @@
     TTI_DETAIL_TRAIT_HAS_MEMBER_FUNCTION(trait,name) \
     } \
   template<class T,class R,class FS = boost::mpl::vector<>,class TAG = boost::function_types::null_tag> \
-  struct trait \
+  struct trait : \
+    detail::trait<typename detail::ptmf_seq<T,R,FS,TAG>::type,typename boost::remove_const<T>::type> \
     { \
-    typedef detail::trait<typename detail::ptmf_seq<T,R,FS,TAG>::type,typename boost::remove_const<T>::type> type; \
-    \
-    BOOST_STATIC_CONSTANT(bool,value=type::value); \
     }; \
   } \
 /**/
@@ -734,11 +702,9 @@
   struct trait \
     { \
     template<class T,class R,class FS = boost::mpl::vector<>,class TAG = boost::function_types::null_tag> \
-    struct apply \
+    struct apply : \
+      detail::trait<typename detail::ptmf_seq<T,R,FS,TAG>::type,typename boost::remove_const<T>::type> \
       { \
-      typedef detail::trait<typename detail::ptmf_seq<T,R,FS,TAG>::type,typename boost::remove_const<T>::type> type; \
-      \
-      BOOST_STATIC_CONSTANT(bool,value=type::value); \
       }; \
     }; \
   } \
@@ -818,11 +784,9 @@
     TTI_DETAIL_TRAIT_HAS_MEMBER_DATA(trait,name) \
     } \
   template<class T,class R> \
-  struct trait \
+  struct trait : \
+    detail::trait<typename detail::ptmd<T,R>::type,typename boost::remove_const<T>::type> \
     { \
-    typedef detail::trait<typename detail::ptmd<T,R>::type,typename boost::remove_const<T>::type> type; \
-    \
-    BOOST_STATIC_CONSTANT(bool,value=type::value); \
     }; \
   } \
 /**/
@@ -853,11 +817,9 @@
   struct trait \
     { \
     template<class T,class R> \
-    struct apply \
+    struct apply : \
+      detail::trait<typename detail::ptmd<T,R>::type,typename boost::remove_const<T>::type> \
       { \
-      typedef detail::trait<typename detail::ptmd<T,R>::type,typename boost::remove_const<T>::type> type; \
-      \
-      BOOST_STATIC_CONSTANT(bool,value=type::value); \
       }; \
     }; \
   } \
@@ -936,11 +898,9 @@
     TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER(trait,name) \
     } \
   template<class T,class Type> \
-  struct trait \
+  struct trait : \
+    detail::trait<T,Type> \
     { \
-    typedef typename detail::trait<T,Type>::type type; \
-    \
-    BOOST_STATIC_CONSTANT(bool,value=type::value); \
     }; \
   } \
 /**/
@@ -974,11 +934,9 @@
   struct trait \
     { \
     template<class T,class Type> \
-    struct apply \
+    struct apply : \
+      detail::trait::apply<T,Type> \
       { \
-      typedef typename detail::trait::apply<T,Type>::type type; \
-      \
-      BOOST_STATIC_CONSTANT(bool,value=type::value); \
       }; \
     }; \
   } \
@@ -1063,11 +1021,9 @@
     TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER_FUNCTION(trait,name) \
     } \
   template<class T,class R,class FS = boost::mpl::vector<>,class TAG = boost::function_types::null_tag> \
-  struct trait \
+  struct trait : \
+    detail::trait<T,typename detail::tfunction_seq<R,FS,TAG>::type> \
     { \
-    typedef detail::trait<T,typename detail::tfunction_seq<R,FS,TAG>::type> type; \
-    \
-    BOOST_STATIC_CONSTANT(bool,value=type::value); \
     }; \
   } \
 /**/
@@ -1100,11 +1056,9 @@
   struct trait \
     { \
     template<class T,class R,class FS = boost::mpl::vector<>,class TAG = boost::function_types::null_tag> \
-    struct apply \
+    struct apply : \
+      detail::trait<T,typename detail::tfunction_seq<R,FS,TAG>::type> \
       { \
-      typedef detail::trait<T,typename detail::tfunction_seq<R,FS,TAG>::type> type; \
-      \
-      BOOST_STATIC_CONSTANT(bool,value=type::value); \
       }; \
     }; \
   } \
Modified: sandbox/tti/boost/tti/detail/TTIntrospectionDetail.hpp
==============================================================================
--- sandbox/tti/boost/tti/detail/TTIntrospectionDetail.hpp	(original)
+++ sandbox/tti/boost/tti/detail/TTIntrospectionDetail.hpp	2011-02-10 16:13:53 EST (Thu, 10 Feb 2011)
@@ -265,18 +265,21 @@
       boost::mpl::false_ \
       >::type \
   type; \
+  BOOST_STATIC_CONSTANT(bool,value=type::value); \
   }; \
 \
 template<class T,class U> \
 struct trait<T,U,boost::mpl::false_::type> \
   { \
   typedef boost::mpl::false_::type type; \
+  BOOST_STATIC_CONSTANT(bool,value=type::value); \
   }; \
 \
 template<class T> \
 struct trait<T,tti::detail::notype,boost::mpl::true_::type> \
   { \
   typedef boost::mpl::true_::type type; \
+  BOOST_STATIC_CONSTANT(bool,value=type::value); \
   }; \
 /**/