Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r73896 - in trunk/boost/tti: . detail gen
From: eldiener_at_[hidden]
Date: 2011-08-18 16:42:11


Author: eldiener
Date: 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
New Revision: 73896
URL: http://svn.boost.org/trac/boost/changeset/73896

Log:
Removed namespaces generated by macro metafunctions.
Text files modified:
   trunk/boost/tti/comp_mem_fun.hpp | 87 ++------------------------------
   trunk/boost/tti/comp_static_mem_fun.hpp | 94 ++---------------------------------
   trunk/boost/tti/detail/dcomp_mem_fun.hpp | 5 +
   trunk/boost/tti/detail/dcomp_static_mem_fun.hpp | 49 +-----------------
   trunk/boost/tti/detail/dmem_data.hpp | 3
   trunk/boost/tti/detail/dmem_fun.hpp | 5 +
   trunk/boost/tti/detail/dmem_type.hpp | 25 +++-----
   trunk/boost/tti/detail/dstatic_mem_data.hpp | 98 +------------------------------------
   trunk/boost/tti/detail/dstatic_mem_fun.hpp | 5 +
   trunk/boost/tti/detail/dtype.hpp | 12 +--
   trunk/boost/tti/detail/dvm_template_params.hpp | 31 +----------
   trunk/boost/tti/gen/comp_mem_fun_gen.hpp | 24 --------
   trunk/boost/tti/gen/comp_static_mem_fun_gen.hpp | 24 --------
   trunk/boost/tti/gen/mem_data_gen.hpp | 24 --------
   trunk/boost/tti/gen/mem_fun_gen.hpp | 24 --------
   trunk/boost/tti/gen/mem_type_gen.hpp | 24 --------
   trunk/boost/tti/gen/static_mem_data_gen.hpp | 24 --------
   trunk/boost/tti/gen/static_mem_fun_gen.hpp | 24 --------
   trunk/boost/tti/gen/template_gen.hpp | 24 --------
   trunk/boost/tti/gen/template_params_gen.hpp | 24 --------
   trunk/boost/tti/gen/type_gen.hpp | 24 --------
   trunk/boost/tti/gen/vm_template_params_gen.hpp | 30 +----------
   trunk/boost/tti/mem_data.hpp | 87 ++------------------------------
   trunk/boost/tti/mem_fun.hpp | 95 ++---------------------------------
   trunk/boost/tti/mem_type.hpp | 97 ++-----------------------------------
   trunk/boost/tti/static_mem_data.hpp | 94 ++---------------------------------
   trunk/boost/tti/static_mem_fun.hpp | 95 ++---------------------------------
   trunk/boost/tti/template.hpp | 87 ++------------------------------
   trunk/boost/tti/template_params.hpp | 94 ++---------------------------------
   trunk/boost/tti/type.hpp | 104 ++++-----------------------------------
   trunk/boost/tti/vm_template_params.hpp | 103 ++++-----------------------------------
   31 files changed, 136 insertions(+), 1404 deletions(-)

Modified: trunk/boost/tti/comp_mem_fun.hpp
==============================================================================
--- trunk/boost/tti/comp_mem_fun.hpp (original)
+++ trunk/boost/tti/comp_mem_fun.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -10,6 +10,7 @@
 #include <boost/config.hpp>
 #include <boost/mpl/apply.hpp>
 #include <boost/mpl/identity.hpp>
+#include <boost/preprocessor/cat.hpp>
 #include "gen/comp_mem_fun_gen.hpp"
 #include "detail/dcomp_mem_fun.hpp"
 
@@ -42,61 +43,12 @@
                           
 */
 #define BOOST_TTI_TRAIT_HAS_COMP_MEMBER_FUNCTION(trait,name) \
-namespace boost \
- { \
- namespace tti \
+ TTI_DETAIL_TRAIT_HAS_COMP_MEMBER_FUNCTION(trait,name) \
+ template<class T> \
+ struct trait : \
+ BOOST_PP_CAT(trait,_detail)<T> \
     { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_COMP_MEMBER_FUNCTION(trait,name) \
- } \
- template<class T> \
- struct trait : \
- BOOST_TTI_NAMESPACE::detail::trait<T> \
- { \
- }; \
- } \
- } \
-/**/
-
-/// Expands to a metafunction class which tests whether a member function with a particular name and composite type exists.
-/**
-
- trait = the name of the metafunction class within the tti namespace.
-
- name = the name of the inner member.
-
- returns = a metafunction class called "boost::tti::trait" where 'trait' is the macro parameter.
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the member function type,
- in the form of a member function pointer - 'return_type (Class::*)(parameter_types...)',
- in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' exists, with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_TRAIT_HAS_COMP_MEMBER_FUNCTION(trait,name) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_COMP_MEMBER_FUNCTION(trait,name) \
- } \
- struct trait \
- { \
- template<class T> \
- struct apply : \
- BOOST_TTI_NAMESPACE::detail::trait<T> \
- { \
- }; \
- }; \
- } \
- } \
+ }; \
 /**/
 
 /// Expands to a metafunction which tests whether a member function with a particular name and composite type exists.
@@ -119,32 +71,7 @@
 #define BOOST_TTI_HAS_COMP_MEMBER_FUNCTION(name) \
   BOOST_TTI_TRAIT_HAS_COMP_MEMBER_FUNCTION \
   ( \
- BOOST_TTI_HAS_COMP_MEMBER_FUNCTION_GEN_BASE(name), \
- name \
- ) \
-/**/
-
-/// Expands to a metafunction class which tests whether a member function with a particular name and composite type exists.
-/**
-
- name = the name of the inner member.
-
- returns = a metafunction class called "boost::tti::mtfc_has_comp_member_function_name" where 'name' is the macro parameter.
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the member function type,
- in the form of a member function pointer - 'return_type (Class::*)(parameter_types...)',
- in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' exists, with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_HAS_COMP_MEMBER_FUNCTION(name) \
- BOOST_TTI_MTFC_TRAIT_HAS_COMP_MEMBER_FUNCTION \
- ( \
- BOOST_TTI_MTFC_HAS_COMP_MEMBER_FUNCTION_GEN_BASE(name), \
+ BOOST_TTI_HAS_COMP_MEMBER_FUNCTION_GEN(name), \
   name \
   ) \
 /**/

Modified: trunk/boost/tti/comp_static_mem_fun.hpp
==============================================================================
--- trunk/boost/tti/comp_static_mem_fun.hpp (original)
+++ trunk/boost/tti/comp_static_mem_fun.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -10,6 +10,7 @@
 #include <boost/config.hpp>
 #include <boost/mpl/apply.hpp>
 #include <boost/mpl/identity.hpp>
+#include <boost/preprocessor/cat.hpp>
 #include "gen/comp_static_mem_fun_gen.hpp"
 #include "detail/dcomp_static_mem_fun.hpp"
 
@@ -45,67 +46,14 @@
                           
 */
 #define BOOST_TTI_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION(trait,name) \
-namespace boost \
- { \
- namespace tti \
+ TTI_DETAIL_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION(trait,name) \
+ template<class T,class Type> \
+ struct trait : \
+ BOOST_PP_CAT(trait,_detail)<T,Type> \
     { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION(trait,name) \
- } \
- template<class T,class Type> \
- struct trait : \
- BOOST_TTI_NAMESPACE::detail::trait<T,Type> \
- { \
- }; \
- } \
- } \
+ }; \
 /**/
 
-/// Expands to a metafunction class which tests whether a static member function with a particular name and composite type exists.
-/**
-
- trait = the name of the metafunction class within the tti namespace.
-
- name = the name of the inner member.
-
- returns = a metafunction class called "boost::tti::trait" where 'trait' is the macro parameter.<br />
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type.
-
- Type = the static member function type,
- in the form of a composite function type - 'return_type (parameter_types...)',
- in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' exists within the enclosing type,
- with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION(trait,name) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_MTFC_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION(trait,name) \
- } \
- struct trait \
- { \
- template<class T,class Type> \
- struct apply : \
- BOOST_TTI_NAMESPACE::detail::trait::apply<T,Type> \
- { \
- }; \
- }; \
- } \
- } \
-/**/
-
-
 /// Expands to a metafunction which tests whether a static member function with a particular name and composite type exists.
 /**
 
@@ -129,35 +77,7 @@
 #define BOOST_TTI_HAS_COMP_STATIC_MEMBER_FUNCTION(name) \
   BOOST_TTI_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION \
   ( \
- BOOST_TTI_HAS_COMP_STATIC_MEMBER_FUNCTION_GEN_BASE(name), \
- name \
- ) \
-/**/
-
-/// Expands to a metafunction class which tests whether a static member function with a particular name and composite type exists.
-/**
-
- name = the name of the inner member.
-
- returns = a metafunction class called "boost::tti::mtfc_has_comp_static_member_function_name" where 'name' is the macro parameter.<br />
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type.
-
- Type = the static member function type,
- in the form of a composite function type - 'return_type (parameter_types...)',
- in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' exists within the enclosing type,
- with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_HAS_COMP_STATIC_MEMBER_FUNCTION(name) \
- BOOST_TTI_MTFC_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION \
- ( \
- BOOST_TTI_MTFC_HAS_COMP_STATIC_MEMBER_FUNCTION_GEN_BASE(name), \
+ BOOST_TTI_HAS_COMP_STATIC_MEMBER_FUNCTION_GEN(name), \
   name \
   ) \
 /**/

Modified: trunk/boost/tti/detail/dcomp_mem_fun.hpp
==============================================================================
--- trunk/boost/tti/detail/dcomp_mem_fun.hpp (original)
+++ trunk/boost/tti/detail/dcomp_mem_fun.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -14,6 +14,7 @@
 #include <boost/mpl/int.hpp>
 #include <boost/mpl/quote.hpp>
 #include <boost/function_types/parameter_types.hpp>
+#include <boost/preprocessor/cat.hpp>
 #include <boost/type_traits/remove_const.hpp>
 #include <boost/type_traits/detail/yes_no_type.hpp>
 
@@ -21,7 +22,7 @@
 
 #define TTI_DETAIL_TRAIT_HAS_COMP_MEMBER_FUNCTION(trait,name) \
   template<class T> \
- struct trait \
+ struct BOOST_PP_CAT(trait,_detail) \
     { \
     template<class F> \
     struct class_type \
@@ -67,7 +68,7 @@
 
 #define TTI_DETAIL_TRAIT_HAS_COMP_MEMBER_FUNCTION(trait,name) \
   template<class T> \
- struct trait \
+ struct BOOST_PP_CAT(trait,_detail) \
     { \
     template<class F> \
     struct class_type \

Modified: trunk/boost/tti/detail/dcomp_static_mem_fun.hpp
==============================================================================
--- trunk/boost/tti/detail/dcomp_static_mem_fun.hpp (original)
+++ trunk/boost/tti/detail/dcomp_static_mem_fun.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -10,13 +10,14 @@
 #include <boost/config.hpp>
 #include <boost/function_types/is_function.hpp>
 #include <boost/mpl/bool.hpp>
+#include <boost/preprocessor/cat.hpp>
 #include <boost/type_traits/detail/yes_no_type.hpp>
 
 #if defined(BOOST_NO_NULLPTR)
 
 #define TTI_DETAIL_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION(trait,name) \
   template<class T,class Type> \
- struct trait \
+ struct BOOST_PP_CAT(trait,_detail) \
     { \
     template<Type *> \
     struct helper; \
@@ -33,33 +34,11 @@
     }; \
 /**/
 
-#define TTI_DETAIL_MTFC_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION(trait,name) \
- struct trait \
- { \
- template<class T,class Type> \
- struct apply \
- { \
- template<Type *> \
- struct helper; \
- \
- template<class U> \
- static ::boost::type_traits::yes_type check(helper<&U::name> *); \
- \
- template<class U> \
- static ::boost::type_traits::no_type check(...); \
- \
- BOOST_STATIC_CONSTANT(bool,value=(boost::function_types::is_function<Type>::value) && (sizeof(check<T>(0))==sizeof(::boost::type_traits::yes_type))); \
- \
- typedef boost::mpl::bool_<value> type; \
- }; \
- }; \
-/**/
-
 #else // !defined(BOOST_NO_NULLPTR)
 
 #define TTI_DETAIL_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION(trait,name) \
   template<class T,class Type> \
- struct trait \
+ struct BOOST_PP_CAT(trait,_detail) \
     { \
     template<Type *> \
     struct helper; \
@@ -76,28 +55,6 @@
     }; \
 /**/
 
-#define TTI_DETAIL_MTFC_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION(trait,name) \
- struct trait \
- { \
- template<class T,class Type> \
- struct apply \
- { \
- template<Type *> \
- struct helper; \
- \
- template<class U> \
- static ::boost::type_traits::yes_type check(helper<&U::name> *); \
- \
- template<class U> \
- static ::boost::type_traits::no_type check(...); \
- \
- BOOST_STATIC_CONSTANT(bool,value=(boost::function_types::is_function<Type>::value) && (sizeof(check<T>(nullptr))==sizeof(::boost::type_traits::yes_type))); \
- \
- typedef boost::mpl::bool_<value> type; \
- }; \
- }; \
-/**/
-
 #endif // defined(BOOST_NO_NULLPTR)
 
 #endif // TTI_DETAIL_COMP_STATIC_MEM_FUN_HPP

Modified: trunk/boost/tti/detail/dmem_data.hpp
==============================================================================
--- trunk/boost/tti/detail/dmem_data.hpp (original)
+++ trunk/boost/tti/detail/dmem_data.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -9,6 +9,7 @@
 
 #include <boost/config.hpp>
 #include <boost/mpl/bool.hpp>
+#include <boost/preprocessor/cat.hpp>
 #include <boost/type_traits/detail/yes_no_type.hpp>
 #if !defined(BOOST_MSVC)
 #include "dmem_fun.hpp"
@@ -18,7 +19,7 @@
 
 #define TTI_DETAIL_TRAIT_HAS_MEMBER_DATA(trait,name) \
   template<class T,class C> \
- struct trait \
+ struct BOOST_PP_CAT(trait,_detail) \
     { \
     template<class> \
     struct return_of; \

Modified: trunk/boost/tti/detail/dmem_fun.hpp
==============================================================================
--- trunk/boost/tti/detail/dmem_fun.hpp (original)
+++ trunk/boost/tti/detail/dmem_fun.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -9,6 +9,7 @@
 
 #include <boost/config.hpp>
 #include <boost/mpl/bool.hpp>
+#include <boost/preprocessor/cat.hpp>
 #include <boost/type_traits/detail/yes_no_type.hpp>
 #include "dptmf.hpp"
 
@@ -16,7 +17,7 @@
 
 #define TTI_DETAIL_TRAIT_HAS_MEMBER_FUNCTION(trait,name) \
   template<class T,class C> \
- struct trait \
+ struct BOOST_PP_CAT(trait,_detail) \
     { \
     template<T> \
     struct helper; \
@@ -37,7 +38,7 @@
 
 #define TTI_DETAIL_TRAIT_HAS_MEMBER_FUNCTION(trait,name) \
   template<class T,class C> \
- struct trait \
+ struct BOOST_PP_CAT(trait,_detail) \
     { \
     template<T> \
     struct helper; \

Modified: trunk/boost/tti/detail/dmem_type.hpp
==============================================================================
--- trunk/boost/tti/detail/dmem_type.hpp (original)
+++ trunk/boost/tti/detail/dmem_type.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -9,30 +9,25 @@
 
 #include <boost/config.hpp>
 #include <boost/mpl/has_xxx.hpp>
+#include <boost/preprocessor/cat.hpp>
 
 #define TTI_DETAIL_TRAIT_HAS_TYPE_MEMBER_TYPE(trait,name) \
-namespace ttimpl \
- { \
- BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, false) \
- } \
-template<class T> \
-struct trait \
- { \
- typedef typename ttimpl::trait<T>::type type; \
- \
- BOOST_STATIC_CONSTANT(bool,value=type::value); \
- }; \
+ BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(BOOST_PP_CAT(trait,_detail_mpl), name, false) \
+ template<class T> \
+ struct BOOST_PP_CAT(trait,_detail) \
+ { \
+ typedef typename BOOST_PP_CAT(trait,_detail_mpl)<T>::type type; \
+ \
+ BOOST_STATIC_CONSTANT(bool,value=type::value); \
+ }; \
 /**/
 
 #define TTI_DETAIL_TRAIT_MEMBER_TYPE(trait,name) \
-namespace member_type \
- { \
   template<class T> \
- struct trait \
+ struct BOOST_PP_CAT(trait,_detail_member_type) \
     { \
     typedef typename T::name type; \
     }; \
- } \
 /**/
 
 #endif // TTI_DETAIL_MEM_TYPE_HPP

Modified: trunk/boost/tti/detail/dstatic_mem_data.hpp
==============================================================================
--- trunk/boost/tti/detail/dstatic_mem_data.hpp (original)
+++ trunk/boost/tti/detail/dstatic_mem_data.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -10,13 +10,14 @@
 #include <boost/config.hpp>
 #include <boost/function_types/is_function.hpp>
 #include <boost/mpl/bool.hpp>
+#include <boost/preprocessor/cat.hpp>
 #include <boost/type_traits/detail/yes_no_type.hpp>
 
 #if defined(BOOST_MSVC)
 
 #define TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER_DATA(trait,name) \
   template<class T,class Type> \
- struct trait \
+ struct BOOST_PP_CAT(trait,_detail) \
     { \
     template<bool,typename U> \
     struct menable_if; \
@@ -58,60 +59,13 @@
     }; \
 /**/
 
-#define TTI_DETAIL_MTFC_TRAIT_HAS_STATIC_MEMBER_DATA(trait,name) \
- struct trait \
- { \
- template<class T,class Type> \
- struct apply \
- { \
- template<bool,typename U> \
- struct menable_if; \
- \
- template<typename U> \
- struct menable_if<true,U> \
- { \
- typedef U type; \
- }; \
- \
- template<typename U,typename V> \
- static ::boost::type_traits::yes_type check2(V *); \
- \
- template<typename U,typename V> \
- static ::boost::type_traits::no_type check2(U); \
- \
- template<typename U,typename V> \
- static typename \
- menable_if \
- < \
- sizeof(check2<U,V>(&U::name))==sizeof(::boost::type_traits::yes_type), \
- ::boost::type_traits::yes_type \
- > \
- ::type \
- has_matching_member(int); \
- \
- template<typename U,typename V> \
- static ::boost::type_traits::no_type has_matching_member(...); \
- \
- template<class U,class V> \
- struct ttc_sd \
- { \
- typedef boost::mpl::bool_<sizeof(has_matching_member<V,U>(0))==sizeof(::boost::type_traits::yes_type)> type; \
- }; \
- \
- typedef typename ttc_sd<Type,T>::type type; \
- \
- BOOST_STATIC_CONSTANT(bool,value=type::value); \
- }; \
- }; \
-/**/
-
 #else // !defined(BOOST_MSVC)
 
 #if defined(BOOST_NO_NULLPTR)
 
 #define TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER_DATA(trait,name) \
   template<class T,class Type> \
- struct trait \
+ struct BOOST_PP_CAT(trait,_detail) \
     { \
     template<Type *> \
     struct helper; \
@@ -128,33 +82,11 @@
     }; \
 /**/
 
-#define TTI_DETAIL_MTFC_TRAIT_HAS_STATIC_MEMBER_DATA(trait,name) \
- struct trait \
- { \
- template<class T,class Type> \
- struct apply \
- { \
- template<Type *> \
- struct helper; \
- \
- template<class U> \
- static ::boost::type_traits::yes_type check(helper<&U::name> *); \
- \
- template<class U> \
- static ::boost::type_traits::no_type check(...); \
- \
- BOOST_STATIC_CONSTANT(bool,value=(!boost::function_types::is_function<Type>::value) && (sizeof(check<T>(0))==sizeof(::boost::type_traits::yes_type))); \
- \
- typedef boost::mpl::bool_<value> type; \
- }; \
- }; \
-/**/
-
 #else // !defined(BOOST_NO_NULLPTR)
 
 #define TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER_DATA(trait,name) \
   template<class T,class Type> \
- struct trait \
+ struct BOOST_PP_CAT(trait,_detail) \
     { \
     template<Type *> \
     struct helper; \
@@ -171,28 +103,6 @@
     }; \
 /**/
 
-#define TTI_DETAIL_MTFC_TRAIT_HAS_STATIC_MEMBER_DATA(trait,name) \
- struct trait \
- { \
- template<class T,class Type> \
- struct apply \
- { \
- template<Type *> \
- struct helper; \
- \
- template<class U> \
- static ::boost::type_traits::yes_type check(helper<&U::name> *); \
- \
- template<class U> \
- static ::boost::type_traits::no_type check(...); \
- \
- BOOST_STATIC_CONSTANT(bool,value=(!boost::function_types::is_function<Type>::value) && (sizeof(check<T>(nullptr))==sizeof(::boost::type_traits::yes_type))); \
- \
- typedef boost::mpl::bool_<value> type; \
- }; \
- }; \
-/**/
-
 #endif // defined(BOOST_NO_NULLPTR)
 
 #endif // defined(BOOST_MSVC)

Modified: trunk/boost/tti/detail/dstatic_mem_fun.hpp
==============================================================================
--- trunk/boost/tti/detail/dstatic_mem_fun.hpp (original)
+++ trunk/boost/tti/detail/dstatic_mem_fun.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -9,13 +9,14 @@
 
 #include <boost/config.hpp>
 #include <boost/mpl/bool.hpp>
+#include <boost/preprocessor/cat.hpp>
 #include <boost/type_traits/detail/yes_no_type.hpp>
 
 #if defined(BOOST_NO_NULLPTR)
 
 #define TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER_FUNCTION(trait,name) \
   template<class T,class Type> \
- struct trait \
+ struct BOOST_PP_CAT(trait,_detail) \
     { \
     template<Type *> \
     struct helper; \
@@ -36,7 +37,7 @@
 
 #define TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER_FUNCTION(trait,name) \
   template<class T,class Type> \
- struct trait \
+ struct BOOST_PP_CAT(trait,_detail) \
     { \
     template<Type *> \
     struct helper; \

Modified: trunk/boost/tti/detail/dtype.hpp
==============================================================================
--- trunk/boost/tti/detail/dtype.hpp (original)
+++ trunk/boost/tti/detail/dtype.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -11,16 +11,14 @@
 #include <boost/mpl/bool.hpp>
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/has_xxx.hpp>
+#include <boost/preprocessor/cat.hpp>
 #include <boost/type_traits/is_same.hpp>
 #include "dnotype.hpp"
 
 #define TTI_DETAIL_TRAIT_HAS_TYPE(trait,name) \
-namespace ttimpl \
- { \
- BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(trait, name, false) \
- } \
+BOOST_MPL_HAS_XXX_TRAIT_NAMED_DEF(BOOST_PP_CAT(trait,_detail_mpl), name, false) \
 template<class T,class U,class B> \
-struct trait \
+struct BOOST_PP_CAT(trait,_detail) \
   { \
   typedef typename \
     boost::mpl::eval_if \
@@ -34,14 +32,14 @@
   }; \
 \
 template<class T,class U> \
-struct trait<T,U,boost::mpl::false_::type> \
+struct BOOST_PP_CAT(trait,_detail)<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,notype,boost::mpl::true_::type> \
+struct BOOST_PP_CAT(trait,_detail)<T,BOOST_TTI_NAMESPACE::detail::notype,boost::mpl::true_::type> \
   { \
   typedef boost::mpl::true_::type type; \
   BOOST_STATIC_CONSTANT(bool,value=type::value); \

Modified: trunk/boost/tti/detail/dvm_template_params.hpp
==============================================================================
--- trunk/boost/tti/detail/dvm_template_params.hpp (original)
+++ trunk/boost/tti/detail/dvm_template_params.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -7,14 +7,13 @@
 #if !defined(TTI_VM_DETAIL_TEMPLATE_PARAMS_HPP)
 #define TTI_VM_DETAIL_TEMPLATE_PARAMS_HPP
 
-#include <boost/config.hpp>
+#include <boost/preprocessor/config/config.hpp>
 
-#if !defined(BOOST_NO_VARIADIC_MACROS)
+#if BOOST_PP_VARIADICS
 
 #include <boost/mpl/has_xxx.hpp>
 #include <boost/mpl/identity.hpp>
 #include <boost/preprocessor/arithmetic/add.hpp>
-#include <boost/preprocessor/cat.hpp>
 #include <boost/preprocessor/variadic/size.hpp>
 #include "dtemplate_params.hpp"
 
@@ -28,16 +27,6 @@
     ) \
 /**/
 
-#define TTI_VM_DETAIL_MTFC_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(trait,name,...) \
- struct trait \
- { \
- TTI_DETAIL_HAS_MEMBER_WITH_FUNCTION_SFINAE \
- ( \
- ( BOOST_PP_ADD(BOOST_PP_VARIADIC_SIZE(__VA_ARGS__),4), ( apply, name, 1, false, __VA_ARGS__ ) ) \
- ) \
- }; \
-/**/
-
 #else // !!BOOST_WORKAROUND(BOOST_MSVC, <= 1400)
 
 #define TTI_VM_DETAIL_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(trait,name,...) \
@@ -47,13 +36,6 @@
     ) \
 /**/
 
-#define TTI_VM_DETAIL_MTFC_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(trait,name,...) \
- TTI_DETAIL_MTFC_HAS_MEMBER_WITH_TEMPLATE_SFINAE \
- ( \
- ( BOOST_PP_ADD(BOOST_PP_VARIADIC_SIZE(__VA_ARGS__),4), ( trait, name, 1, false, __VA_ARGS__ ) ) \
- ) \
-/**/
-
 #endif // !BOOST_WORKAROUND(BOOST_MSVC, <= 1400)
 #else // !!defined(BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE)
 
@@ -61,13 +43,6 @@
   TTI_DETAIL_SAME(trait,name) \
 /**/
 
-#define TTI_VM_DETAIL_MTFC_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(trait,name,...) \
- struct trait \
- { \
- TTI_DETAIL_SAME(apply,name) \
- }; \
-/**/
-
 #endif // !defined(BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE)
-#endif // !defined(BOOST_NO_VARIADIC_MACROS)
+#endif // BOOST_PP_VARIADICS
 #endif // TTI_VM_DETAIL_TEMPLATE_PARAMS_HPP

Modified: trunk/boost/tti/gen/comp_mem_fun_gen.hpp
==============================================================================
--- trunk/boost/tti/gen/comp_mem_fun_gen.hpp (original)
+++ trunk/boost/tti/gen/comp_mem_fun_gen.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -30,34 +30,12 @@
   BOOST_PP_CAT(has_comp_member_function_,name) \
 /**/
 
-/// Generates the macro metafunction name for BOOST_TTI_MTFC_HAS_COMP_MEMBER_FUNCTION.
-/**
- name = the name of the member function.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_MTFC_HAS_COMP_MEMBER_FUNCTION_GEN_BASE(name) \
- BOOST_PP_CAT(mtfc_has_comp_member_function_,name) \
-/**/
-
 /// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_HAS_COMP_MEMBER_FUNCTION.
 /**
     name = the name of the member function.
 
     returns = the generated macro metafunction name.
 */
-#define BOOST_TTI_HAS_COMP_MEMBER_FUNCTION_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_HAS_COMP_MEMBER_FUNCTION_GEN_BASE(name) \
-/**/
-
-/// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_MTFC_HAS_COMP_MEMBER_FUNCTION.
-/**
- name = the name of the member function.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_MTFC_HAS_COMP_MEMBER_FUNCTION_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_MTFC_HAS_COMP_MEMBER_FUNCTION_GEN_BASE(name) \
-/**/
+#define BOOST_TTI_HAS_COMP_MEMBER_FUNCTION_GEN BOOST_TTI_HAS_COMP_MEMBER_FUNCTION_GEN_BASE
 
 #endif // TTI_COMP_MEM_FUN_GEN_HPP

Modified: trunk/boost/tti/gen/comp_static_mem_fun_gen.hpp
==============================================================================
--- trunk/boost/tti/gen/comp_static_mem_fun_gen.hpp (original)
+++ trunk/boost/tti/gen/comp_static_mem_fun_gen.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -30,34 +30,12 @@
   BOOST_PP_CAT(has_comp_static_member_function_,name) \
 /**/
 
-/// Generates the macro metafunction name for BOOST_TTI_MTFC_HAS_COMP_STATIC_MEMBER_FUNCTION.
-/**
- name = the name of the static member function.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_MTFC_HAS_COMP_STATIC_MEMBER_FUNCTION_GEN_BASE(name) \
- BOOST_PP_CAT(mtfc_has_comp_static_member_function_,name) \
-/**/
-
 /// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_HAS_COMP_STATIC_MEMBER_FUNCTION.
 /**
     name = the name of the static member function.
 
     returns = the generated macro metafunction name.
 */
-#define BOOST_TTI_HAS_COMP_STATIC_MEMBER_FUNCTION_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_HAS_COMP_STATIC_MEMBER_FUNCTION_GEN_BASE(name) \
-/**/
-
-/// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_MTFC_HAS_COMP_STATIC_MEMBER_FUNCTION.
-/**
- name = the name of the static member function.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_MTFC_HAS_COMP_STATIC_MEMBER_FUNCTION_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_MTFC_HAS_COMP_STATIC_MEMBER_FUNCTION_GEN_BASE(name) \
-/**/
+#define BOOST_TTI_HAS_COMP_STATIC_MEMBER_FUNCTION_GEN BOOST_TTI_HAS_COMP_STATIC_MEMBER_FUNCTION_GEN_BASE
 
 #endif // TTI_COMP_STATIC_MEM_FUN_GEN_HPP

Modified: trunk/boost/tti/gen/mem_data_gen.hpp
==============================================================================
--- trunk/boost/tti/gen/mem_data_gen.hpp (original)
+++ trunk/boost/tti/gen/mem_data_gen.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -30,34 +30,12 @@
   BOOST_PP_CAT(has_member_data_,name) \
 /**/
 
-/// Generates the macro metafunction name for BOOST_TTI_MTFC_HAS_MEMBER_DATA.
-/**
- name = the name of the member data.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_MTFC_HAS_MEMBER_DATA_GEN_BASE(name) \
- BOOST_PP_CAT(mtfc_has_member_data_,name) \
-/**/
-
 /// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_HAS_MEMBER_DATA.
 /**
     name = the name of the member data.
 
     returns = the generated macro metafunction name.
 */
-#define BOOST_TTI_HAS_MEMBER_DATA_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_HAS_MEMBER_DATA_GEN_BASE(name) \
-/**/
-
-/// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_MTFC_HAS_MEMBER_DATA.
-/**
- name = the name of the member data.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_MTFC_HAS_MEMBER_DATA_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_MTFC_HAS_MEMBER_DATA_GEN_BASE(name) \
-/**/
+#define BOOST_TTI_HAS_MEMBER_DATA_GEN BOOST_TTI_HAS_MEMBER_DATA_GEN_BASE
 
 #endif // TTI_MEMBER_DATA_GEN_HPP

Modified: trunk/boost/tti/gen/mem_fun_gen.hpp
==============================================================================
--- trunk/boost/tti/gen/mem_fun_gen.hpp (original)
+++ trunk/boost/tti/gen/mem_fun_gen.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -30,34 +30,12 @@
   BOOST_PP_CAT(has_member_function_,name) \
 /**/
 
-/// Generates the macro metafunction name for BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION.
-/**
- name = the name of the member function.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION_GEN_BASE(name) \
- BOOST_PP_CAT(mtfc_has_member_function_,name) \
-/**/
-
 /// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_HAS_MEMBER_FUNCTION.
 /**
     name = the name of the member function.
 
     returns = the generated macro metafunction name.
 */
-#define BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_HAS_MEMBER_FUNCTION_GEN_BASE(name) \
-/**/
-
-/// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION.
-/**
- name = the name of the member function.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION_GEN_BASE(name) \
-/**/
+#define BOOST_TTI_HAS_MEMBER_FUNCTION_GEN BOOST_TTI_HAS_MEMBER_FUNCTION_GEN_BASE
 
 #endif // TTI_MEMBER_FUNCTION_GEN_HPP

Modified: trunk/boost/tti/gen/mem_type_gen.hpp
==============================================================================
--- trunk/boost/tti/gen/mem_type_gen.hpp (original)
+++ trunk/boost/tti/gen/mem_type_gen.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -30,34 +30,12 @@
   BOOST_PP_CAT(member_type_,name) \
 /**/
   
-/// Generates the macro metafunction name for BOOST_TTI_MTFC_MEMBER_TYPE.
-/**
- name = the name of the inner type.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_MTFC_MEMBER_TYPE_GEN_BASE(name) \
- BOOST_PP_CAT(mtfc_member_type_,name) \
-/**/
-
 /// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_MEMBER_TYPE.
 /**
     name = the name of the inner type.
 
     returns = the generated macro metafunction name.
 */
-#define BOOST_TTI_MEMBER_TYPE_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_MEMBER_TYPE_GEN_BASE(name) \
-/**/
+#define BOOST_TTI_MEMBER_TYPE_GEN BOOST_TTI_MEMBER_TYPE_GEN_BASE
   
-/// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_MTFC_MEMBER_TYPE.
-/**
- name = the name of the inner type.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_MTFC_MEMBER_TYPE_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_MTFC_MEMBER_TYPE_GEN_BASE(name) \
-/**/
-
 #endif // TTI_MEMBER_TYPE_GEN_HPP

Modified: trunk/boost/tti/gen/static_mem_data_gen.hpp
==============================================================================
--- trunk/boost/tti/gen/static_mem_data_gen.hpp (original)
+++ trunk/boost/tti/gen/static_mem_data_gen.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -30,34 +30,12 @@
   BOOST_PP_CAT(has_static_member_data_,name) \
 /**/
 
-/// Generates the macro metafunction name for BOOST_TTI_MTFC_HAS_STATIC_MEMBER_DATA.
-/**
- name = the name of the static member data.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_MTFC_HAS_STATIC_MEMBER_DATA_GEN_BASE(name) \
- BOOST_PP_CAT(mtfc_has_static_member_data_,name) \
-/**/
-
 /// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_HAS_STATIC_MEMBER_DATA.
 /**
     name = the name of the static member data.
 
     returns = the generated macro metafunction name.
 */
-#define BOOST_TTI_HAS_STATIC_MEMBER_DATA_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_HAS_STATIC_MEMBER_DATA_GEN_BASE(name) \
-/**/
-
-/// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_MTFC_HAS_STATIC_MEMBER_DATA.
-/**
- name = the name of the static member data.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_MTFC_HAS_STATIC_MEMBER_DATA_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_MTFC_HAS_STATIC_MEMBER_DATA_GEN_BASE(name) \
-/**/
+#define BOOST_TTI_HAS_STATIC_MEMBER_DATA_GEN BOOST_TTI_HAS_STATIC_MEMBER_DATA_GEN_BASE
 
 #endif // TTI_STATIC_MEMBER_DATA_GEN_HPP

Modified: trunk/boost/tti/gen/static_mem_fun_gen.hpp
==============================================================================
--- trunk/boost/tti/gen/static_mem_fun_gen.hpp (original)
+++ trunk/boost/tti/gen/static_mem_fun_gen.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -30,34 +30,12 @@
   BOOST_PP_CAT(has_static_member_function_,name) \
 /**/
 
-/// Generates the macro metafunction name for BOOST_TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION.
-/**
- name = the name of the static member function.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION_GEN_BASE(name) \
- BOOST_PP_CAT(mtfc_has_static_member_function_,name) \
-/**/
-
 /// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION.
 /**
     name = the name of the static member function.
 
     returns = the generated macro metafunction name.
 */
-#define BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_GEN_BASE(name) \
-/**/
-
-/// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION.
-/**
- name = the name of the static member function.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION_GEN_BASE(name) \
-/**/
+#define BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_GEN BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_GEN_BASE
 
 #endif // TTI_STATIC_MEMBER_FUNCTION_GEN_HPP

Modified: trunk/boost/tti/gen/template_gen.hpp
==============================================================================
--- trunk/boost/tti/gen/template_gen.hpp (original)
+++ trunk/boost/tti/gen/template_gen.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -30,34 +30,12 @@
   BOOST_PP_CAT(has_template_,name) \
 /**/
 
-/// Generates the macro metafunction name for BOOST_TTI_MTFC_HAS_TEMPLATE.
-/**
- name = the name of the class template.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_MTFC_HAS_TEMPLATE_GEN_BASE(name) \
- BOOST_PP_CAT(mtfc_has_template_,name) \
-/**/
-
 /// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_HAS_TEMPLATE.
 /**
     name = the name of the class template.
 
     returns = the generated macro metafunction name.
 */
-#define BOOST_TTI_HAS_TEMPLATE_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_HAS_TEMPLATE_GEN_BASE(name) \
-/**/
-
-/// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_MTFC_HAS_TEMPLATE.
-/**
- name = the name of the class template.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_MTFC_HAS_TEMPLATE_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_MTFC_HAS_TEMPLATE_GEN_BASE(name) \
-/**/
+#define BOOST_TTI_HAS_TEMPLATE_GEN BOOST_TTI_HAS_TEMPLATE_GEN_BASE
 
 #endif // TTI_TEMPLATE_GEN_HPP

Modified: trunk/boost/tti/gen/template_params_gen.hpp
==============================================================================
--- trunk/boost/tti/gen/template_params_gen.hpp (original)
+++ trunk/boost/tti/gen/template_params_gen.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -30,34 +30,12 @@
   BOOST_PP_CAT(has_template_check_params_,name) \
 /**/
 
-/// Generates the macro metafunction name for BOOST_TTI_MTFC_HAS_TEMPLATE_CHECK_PARAMS.
-/**
- name = the name of the class template.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_MTFC_HAS_TEMPLATE_CHECK_PARAMS_GEN_BASE(name) \
- BOOST_PP_CAT(mtfc_has_template_check_params_,name) \
-/**/
-
 /// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS.
 /**
     name = the name of the class template.
 
     returns = the generated macro metafunction name.
 */
-#define BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN_BASE(name) \
-/**/
-
-/// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_MTFC_HAS_TEMPLATE_CHECK_PARAMS.
-/**
- name = the name of the class template.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_MTFC_HAS_TEMPLATE_CHECK_PARAMS_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_MTFC_HAS_TEMPLATE_CHECK_PARAMS_GEN_BASE(name) \
-/**/
+#define BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN_BASE
 
 #endif // TTI_TEMPLATE_PARAMS_GEN_HPP

Modified: trunk/boost/tti/gen/type_gen.hpp
==============================================================================
--- trunk/boost/tti/gen/type_gen.hpp (original)
+++ trunk/boost/tti/gen/type_gen.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -30,34 +30,12 @@
   BOOST_PP_CAT(has_type_,name) \
 /**/
 
-/// Generates the macro metafunction name for BOOST_TTI_MTFC_HAS_TYPE.
-/**
- name = the name of the type.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_MTFC_HAS_TYPE_GEN_BASE(name) \
- BOOST_PP_CAT(mtfc_has_type_,name) \
-/**/
-
 /// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_HAS_TYPE.
 /**
     name = the name of the type.
 
     returns = the generated macro metafunction name.
 */
-#define BOOST_TTI_HAS_TYPE_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_HAS_TYPE_GEN_BASE(name) \
-/**/
-
-/// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_MTFC_HAS_TYPE.
-/**
- name = the name of the type.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_MTFC_HAS_TYPE_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_MTFC_HAS_TYPE_GEN_BASE(name) \
-/**/
+#define BOOST_TTI_HAS_TYPE_GEN BOOST_TTI_HAS_TYPE_GEN_BASE
 
 #endif // TTI_TYPE_GEN_HPP

Modified: trunk/boost/tti/gen/vm_template_params_gen.hpp
==============================================================================
--- trunk/boost/tti/gen/vm_template_params_gen.hpp (original)
+++ trunk/boost/tti/gen/vm_template_params_gen.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -7,9 +7,9 @@
 #if !defined(TTI_VM_TEMPLATE_PARAMS_GEN_HPP)
 #define TTI_VM_TEMPLATE_PARAMS_GEN_HPP
 
-#include <boost/config.hpp>
+#include <boost/preprocessor/config/config.hpp>
 
-#if !defined(BOOST_NO_VARIADIC_MACROS)
+#if BOOST_PP_VARIADICS
 
 #include <boost/preprocessor/cat.hpp>
 #include "trait_gen.hpp"
@@ -33,35 +33,13 @@
   BOOST_PP_CAT(has_template_check_params_,name) \
 /**/
 
-/// Generates the macro metafunction name for BOOST_TTI_VM_MTFC_HAS_TEMPLATE_CHECK_PARAMS.
-/**
- name = the name of the class template.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_VM_MTFC_HAS_TEMPLATE_CHECK_PARAMS_GEN_BASE(name) \
- BOOST_PP_CAT(mtfc_has_template_check_params_,name) \
-/**/
-
 /// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS.
 /**
     name = the name of the class template.
 
     returns = the generated macro metafunction name.
 */
-#define BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_GEN_BASE(name) \
-/**/
-
-/// Generates the macro metafunction name within the Boost TTI namespace for BOOST_TTI_VM_MTFC_HAS_TEMPLATE_CHECK_PARAMS.
-/**
- name = the name of the class template.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_VM_MTFC_HAS_TEMPLATE_CHECK_PARAMS_GEN(name) \
- BOOST_TTI_NAMESPACE::BOOST_TTI_VM_MTFC_HAS_TEMPLATE_CHECK_PARAMS_GEN_BASE(name) \
-/**/
+#define BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_GEN BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_GEN_BASE
 
-#endif // !defined(BOOST_NO_VARIADIC_MACROS)
+#endif // BOOST_PP_VARIADICS
 #endif // TTI_VM_TEMPLATE_PARAMS_GEN_HPP

Modified: trunk/boost/tti/mem_data.hpp
==============================================================================
--- trunk/boost/tti/mem_data.hpp (original)
+++ trunk/boost/tti/mem_data.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -8,6 +8,7 @@
 #define TTI_MEMBER_DATA_HPP
 
 #include <boost/config.hpp>
+#include <boost/preprocessor/cat.hpp>
 #include <boost/type_traits/remove_const.hpp>
 #include "mf/mf_mem_data.hpp"
 #include "gen/mem_data_gen.hpp"
@@ -42,61 +43,12 @@
                           
 */
 #define BOOST_TTI_TRAIT_HAS_MEMBER_DATA(trait,name) \
-namespace boost \
- { \
- namespace tti \
+ TTI_DETAIL_TRAIT_HAS_MEMBER_DATA(trait,name) \
+ template<class T,class R> \
+ struct trait : \
+ BOOST_PP_CAT(trait,_detail)<typename BOOST_TTI_NAMESPACE::detail::ptmd<T,R>::type,typename boost::remove_const<T>::type> \
     { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_MEMBER_DATA(trait,name) \
- } \
- template<class T,class R> \
- struct trait : \
- BOOST_TTI_NAMESPACE::detail::trait<typename BOOST_TTI_NAMESPACE::detail::ptmd<T,R>::type,typename boost::remove_const<T>::type> \
- { \
- }; \
- } \
- } \
-/**/
-
-/// Expands to a metafunction class which tests whether a member data with a particular name and type exists.
-/**
-
- trait = the name of the metafunction class within the tti namespace.
-
- name = the name of the inner member.
-
- returns = a metafunction class called "boost::tti::trait" where 'trait' is the macro parameter.<br />
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type in which to look for our 'name'.
-
- R = the type of the member data.
-
- returns = 'value' is true if the 'name' exists, with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_TRAIT_HAS_MEMBER_DATA(trait,name) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_MEMBER_DATA(trait,name) \
- } \
- struct trait \
- { \
- template<class T,class R> \
- struct apply : \
- BOOST_TTI_NAMESPACE::detail::trait<typename BOOST_TTI_NAMESPACE::detail::ptmd<T,R>::type,typename boost::remove_const<T>::type> \
- { \
- }; \
- }; \
- } \
- } \
+ }; \
 /**/
 
 /// Expands to a metafunction which tests whether a member data with a particular name and type exists.
@@ -119,32 +71,7 @@
 #define BOOST_TTI_HAS_MEMBER_DATA(name) \
   BOOST_TTI_TRAIT_HAS_MEMBER_DATA \
   ( \
- BOOST_TTI_HAS_MEMBER_DATA_GEN_BASE(name), \
- name \
- ) \
-/**/
-
-/// Expands to a metafunction class which tests whether a member data with a particular name and type exists.
-/**
-
- name = the name of the inner member.
-
- returns = a metafunction class called "boost::tti::mtfc_has_member_data_name" where 'name' is the macro parameter.
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type in which to look for our 'name'.
-
- R = the type of the member data.
-
- returns = 'value' is true if the 'name' exists, with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_HAS_MEMBER_DATA(name) \
- BOOST_TTI_MTFC_TRAIT_HAS_MEMBER_DATA \
- ( \
- BOOST_TTI_MTFC_HAS_MEMBER_DATA_GEN_BASE(name), \
+ BOOST_TTI_HAS_MEMBER_DATA_GEN(name), \
   name \
   ) \
 /**/

Modified: trunk/boost/tti/mem_fun.hpp
==============================================================================
--- trunk/boost/tti/mem_fun.hpp (original)
+++ trunk/boost/tti/mem_fun.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -10,6 +10,7 @@
 #include <boost/config.hpp>
 #include <boost/function_types/property_tags.hpp>
 #include <boost/mpl/vector.hpp>
+#include <boost/preprocessor/cat.hpp>
 #include <boost/type_traits/remove_const.hpp>
 #include "mf/mf_mem_fun.hpp"
 #include "gen/mem_fun_gen.hpp"
@@ -48,65 +49,12 @@
                           
 */
 #define BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION(trait,name) \
-namespace boost \
- { \
- namespace tti \
+ 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 : \
+ BOOST_PP_CAT(trait,_detail)<typename BOOST_TTI_NAMESPACE::detail::ptmf_seq<T,R,FS,TAG>::type,typename boost::remove_const<T>::type> \
     { \
- namespace detail \
- { \
- 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 : \
- BOOST_TTI_NAMESPACE::detail::trait<typename BOOST_TTI_NAMESPACE::detail::ptmf_seq<T,R,FS,TAG>::type,typename boost::remove_const<T>::type> \
- { \
- }; \
- } \
- } \
-/**/
-
-/// Expands to a metafunction class which tests whether a member function with a particular name and signature exists.
-/**
-
- trait = the name of the metafunction class within the tti namespace.
-
- name = the name of the inner member.
-
- returns = a metafunction class called "boost::tti::trait" where 'trait' is the macro parameter.
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type in which to look for our 'name'.
-
- R = the return type of the member function.
-
- FS = an optional parameter which are the parameters of the member function as a boost::mpl forward sequence.
-
- TAG = an optional parameter which is a boost::function_types tag to apply to the member function.
-
- returns = 'value' is true if the 'name' exists, with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_TRAIT_HAS_MEMBER_FUNCTION(trait,name) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_MEMBER_FUNCTION(trait,name) \
- } \
- struct trait \
- { \
- template<class T,class R,class FS = boost::mpl::vector<>,class TAG = boost::function_types::null_tag> \
- struct apply : \
- BOOST_TTI_NAMESPACE::detail::trait<typename BOOST_TTI_NAMESPACE::detail::ptmf_seq<T,R,FS,TAG>::type,typename boost::remove_const<T>::type> \
- { \
- }; \
- }; \
- } \
- } \
+ }; \
 /**/
 
 /// Expands to a metafunction which tests whether a member function with a particular name and signature exists.
@@ -133,36 +81,7 @@
 #define BOOST_TTI_HAS_MEMBER_FUNCTION(name) \
   BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION \
   ( \
- BOOST_TTI_HAS_MEMBER_FUNCTION_GEN_BASE(name), \
- name \
- ) \
-/**/
-
-/// Expands to a metafunction class which tests whether a member function with a particular name and signature exists.
-/**
-
- name = the name of the inner member.
-
- returns = a metafunction class called "boost::tti::mtfc_has_member_function_name" where 'name' is the macro parameter.
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type in which to look for our 'name'.
-
- R = the return type of the member function.
-
- FS = an optional parameter which are the parameters of the member function as a boost::mpl forward sequence.
-
- TAG = an optional parameter which is a boost::function_types tag to apply to the member function.
-
- returns = 'value' is true if the 'name' exists, with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION(name) \
- BOOST_TTI_MTFC_TRAIT_HAS_MEMBER_FUNCTION \
- ( \
- BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION_GEN_BASE(name), \
+ BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(name), \
   name \
   ) \
 /**/

Modified: trunk/boost/tti/mem_type.hpp
==============================================================================
--- trunk/boost/tti/mem_type.hpp (original)
+++ trunk/boost/tti/mem_type.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -10,6 +10,7 @@
 #include <boost/config.hpp>
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/identity.hpp>
+#include <boost/preprocessor/cat.hpp>
 #include "mf/mf_mem_type.hpp"
 #include "gen/mem_type_gen.hpp"
 #include "detail/dmem_type.hpp"
@@ -47,76 +48,18 @@
     
 */
 #define BOOST_TTI_TRAIT_MEMBER_TYPE(trait,name) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_TYPE_MEMBER_TYPE(trait,name) \
- TTI_DETAIL_TRAIT_MEMBER_TYPE(trait,name) \
- } \
+ TTI_DETAIL_TRAIT_HAS_TYPE_MEMBER_TYPE(trait,name) \
+ TTI_DETAIL_TRAIT_MEMBER_TYPE(trait,name) \
     template<class T> \
     struct trait : \
       boost::mpl::eval_if \
         < \
- BOOST_TTI_NAMESPACE::detail::trait<T>, \
- BOOST_TTI_NAMESPACE::detail::member_type::trait<T>, \
+ BOOST_PP_CAT(trait,_detail)<T>, \
+ BOOST_PP_CAT(trait,_detail_member_type)<T>, \
         boost::mpl::identity<BOOST_TTI_NAMESPACE::detail::notype> \
> \
       { \
       }; \
- } \
- } \
-/**/
-
-/// Expands to a metafunction class whose typedef 'type' is either the named type or an unspecified type.
-/**
-
- trait = the name of the metafunction class within the tti namespace.
-
- name = the name of the inner type.
-
- returns = a metafunction class called "boost::tti::trait" where 'trait' is the macro parameter.
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type.
-
- returns = 'type' is the inner type of 'name' if the inner type exists
- within the enclosing type, else 'type' is an unspecified type.<br />
-
- The purpose of this macro is to encapsulate the 'name' type as the typedef 'type'
- of a metafunction class, but only if it exists within the enclosing type. This allows for
- a lazy evaluation of inner type existence which can be used by other metafunctions
- in this library.
-
-*/
-#define BOOST_TTI_MTFC_TRAIT_MEMBER_TYPE(trait,name) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_TYPE_MEMBER_TYPE(trait,name) \
- TTI_DETAIL_TRAIT_MEMBER_TYPE(trait,name) \
- } \
- struct trait \
- { \
- template<class T> \
- struct apply : \
- boost::mpl::eval_if \
- < \
- BOOST_TTI_NAMESPACE::detail::trait<T>, \
- BOOST_TTI_NAMESPACE::detail::member_type::trait<T>, \
- boost::mpl::identity<BOOST_TTI_NAMESPACE::detail::notype> \
- > \
- { \
- }; \
- }; \
- } \
- } \
 /**/
 
 /// Expands to a metafunction whose typedef 'type' is either the named type or an unspecified type.
@@ -142,37 +85,9 @@
 #define BOOST_TTI_MEMBER_TYPE(name) \
   BOOST_TTI_TRAIT_MEMBER_TYPE \
   ( \
- BOOST_TTI_MEMBER_TYPE_GEN_BASE(name), \
+ BOOST_TTI_MEMBER_TYPE_GEN(name), \
   name \
   ) \
 /**/
   
-/// Expands to a metafunction class whose typedef 'type' is either the named type or an unspecified type.
-/**
-
- name = the name of the inner type.
-
- returns = a metafunction class called "boost::tti::mtfc_member_type_name" where 'name' is the macro parameter.
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type.
-
- returns = 'type' is the inner type of 'name' if the inner type exists
- within the enclosing type, else 'type' is an unspecified type.
-
- The purpose of this macro is to encapsulate the 'name' type as the typedef 'type'
- of a metafunction class, but only if it exists within the enclosing type. This allows for
- a lazy evaluation of inner type existence which can be used by other metafunctions
- in this library.
-
-*/
-#define BOOST_TTI_MTFC_MEMBER_TYPE(name) \
- BOOST_TTI_MTFC_TRAIT_MEMBER_TYPE \
- ( \
- BOOST_TTI_MTFC_MEMBER_TYPE_GEN_BASE(name), \
- name \
- ) \
-/**/
-
 #endif // TTI_MEMBER_TYPE_HPP

Modified: trunk/boost/tti/static_mem_data.hpp
==============================================================================
--- trunk/boost/tti/static_mem_data.hpp (original)
+++ trunk/boost/tti/static_mem_data.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -8,6 +8,7 @@
 #define TTI_STATIC_MEMBER_DATA_HPP
 
 #include <boost/config.hpp>
+#include <boost/preprocessor/cat.hpp>
 #include "mf/mf_static_mem_data.hpp"
 #include "gen/static_mem_data_gen.hpp"
 #include "detail/dstatic_mem_data.hpp"
@@ -44,67 +45,14 @@
                           
 */
 #define BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_DATA(trait,name) \
-namespace boost \
- { \
- namespace tti \
+ TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER_DATA(trait,name) \
+ template<class T,class Type> \
+ struct trait : \
+ BOOST_PP_CAT(trait,_detail)<T,Type> \
     { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER_DATA(trait,name) \
- } \
- template<class T,class Type> \
- struct trait : \
- BOOST_TTI_NAMESPACE::detail::trait<T,Type> \
- { \
- }; \
- } \
- } \
+ }; \
 /**/
 
-/// Expands to a metafunction class which tests whether a static member data with a particular name and type exists.
-/**
-
- trait = the name of the metafunction class within the tti namespace.
-
- name = the name of the inner member.
-
- returns = a metafunction class called "boost::tti::trait" where 'trait' is the macro parameter.<br />
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type.
-
- Type = the static member data type,
- in the form of a data type,
- in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' exists within the enclosing type,
- with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_DATA(trait,name) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_MTFC_TRAIT_HAS_STATIC_MEMBER_DATA(trait,name) \
- } \
- struct trait \
- { \
- template<class T,class Type> \
- struct apply : \
- BOOST_TTI_NAMESPACE::detail::trait::apply<T,Type> \
- { \
- }; \
- }; \
- } \
- } \
-/**/
-
-
 /// Expands to a metafunction which tests whether a static member data with a particular name and type exists.
 /**
 
@@ -128,35 +76,7 @@
 #define BOOST_TTI_HAS_STATIC_MEMBER_DATA(name) \
   BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_DATA \
   ( \
- BOOST_TTI_HAS_STATIC_MEMBER_DATA_GEN_BASE(name), \
- name \
- ) \
-/**/
-
-/// Expands to a metafunction class which tests whether a static member data with a particular name and type exists.
-/**
-
- name = the name of the inner member.
-
- returns = a metafunction class called "boost::tti::mtfc_has_static_member_data_name" where 'name' is the macro parameter.<br />
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type.
-
- Type = the static member data type,
- in the form of a data type,
- in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' exists within the enclosing type,
- with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_HAS_STATIC_MEMBER_DATA(name) \
- BOOST_TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_DATA \
- ( \
- BOOST_TTI_MTFC_HAS_STATIC_MEMBER_DATA_GEN_BASE(name), \
+ BOOST_TTI_HAS_STATIC_MEMBER_DATA_GEN(name), \
   name \
   ) \
 /**/

Modified: trunk/boost/tti/static_mem_fun.hpp
==============================================================================
--- trunk/boost/tti/static_mem_fun.hpp (original)
+++ trunk/boost/tti/static_mem_fun.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -10,6 +10,7 @@
 #include <boost/config.hpp>
 #include <boost/function_types/property_tags.hpp>
 #include <boost/mpl/vector.hpp>
+#include <boost/preprocessor/cat.hpp>
 #include "mf/mf_static_mem_fun.hpp"
 #include "gen/static_mem_fun_gen.hpp"
 #include "detail/dstatic_mem_fun.hpp"
@@ -48,65 +49,12 @@
                           
 */
 #define BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION(trait,name) \
-namespace boost \
- { \
- namespace tti \
+ 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 : \
+ BOOST_PP_CAT(trait,_detail)<T,typename BOOST_TTI_NAMESPACE::detail::tfunction_seq<R,FS,TAG>::type> \
     { \
- namespace detail \
- { \
- 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 : \
- BOOST_TTI_NAMESPACE::detail::trait<T,typename BOOST_TTI_NAMESPACE::detail::tfunction_seq<R,FS,TAG>::type> \
- { \
- }; \
- } \
- } \
-/**/
-
-/// Expands to a metafunction class which tests whether a static member function with a particular name and signature exists.
-/**
-
- trait = the name of the metafunction class within the tti namespace.
-
- name = the name of the inner member.
-
- returns = a metafunction class called "boost::tti::trait" where 'trait' is the macro parameter.<br />
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type in which to look for our 'name'.
-
- R = the return type of the static member function.
-
- FS = an optional parameter which are the parameters of the static member function as a boost::mpl forward sequence.
-
- TAG = an optional parameter which is a boost::function_types tag to apply to the static member function.
-
- returns = 'value' is true if the 'name' exists, with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_FUNCTION(trait,name) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER_FUNCTION(trait,name) \
- } \
- struct trait \
- { \
- template<class T,class R,class FS = boost::mpl::vector<>,class TAG = boost::function_types::null_tag> \
- struct apply : \
- BOOST_TTI_NAMESPACE::detail::trait<T,typename BOOST_TTI_NAMESPACE::detail::tfunction_seq<R,FS,TAG>::type> \
- { \
- }; \
- }; \
- } \
- } \
+ }; \
 /**/
 
 /// Expands to a metafunction which tests whether a static member function with a particular name and signature exists.
@@ -133,36 +81,7 @@
 #define BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION(name) \
   BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION \
   ( \
- BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_GEN_BASE(name), \
- name \
- ) \
-/**/
-
-/// Expands to a metafunction class which tests whether a static member function with a particular name and signature exists.
-/**
-
- name = the name of the inner member.
-
- returns = a metafunction class called "boost::tti::mtfc_has_static_member_function_name" where 'name' is the macro parameter.
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type in which to look for our 'name'.
-
- R = the return type of the static member function.
-
- FS = an optional parameter which are the parameters of the static member function as a boost::mpl forward sequence.
-
- TAG = an optional parameter which is a boost::function_types tag to apply to the static member function.
-
- returns = 'value' is true if the 'name' exists, with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION(name) \
- BOOST_TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_FUNCTION \
- ( \
- BOOST_TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION_GEN_BASE(name), \
+ BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_GEN(name), \
   name \
   ) \
 /**/

Modified: trunk/boost/tti/template.hpp
==============================================================================
--- trunk/boost/tti/template.hpp (original)
+++ trunk/boost/tti/template.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -9,6 +9,7 @@
 
 #include <boost/config.hpp>
 #include <boost/mpl/has_xxx.hpp>
+#include <boost/preprocessor/cat.hpp>
 #include "mf/mf_template.hpp"
 #include "gen/template_gen.hpp"
 
@@ -41,61 +42,12 @@
     
 */
 #define BOOST_TTI_TRAIT_HAS_TEMPLATE(trait,name) \
-namespace boost \
- { \
- namespace tti \
+ BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(BOOST_PP_CAT(trait,_detail_mpl), name, false) \
+ template<class T> \
+ struct trait : \
+ BOOST_PP_CAT(trait,_detail_mpl)<T> \
     { \
- namespace detail \
- { \
- BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(trait, name, false) \
- } \
- template<class T> \
- struct trait : \
- BOOST_TTI_NAMESPACE::detail::trait<T> \
- { \
- }; \
- } \
- } \
-/**/
-
-/// Expands to a metafunction class which tests whether an inner class template with a particular name exists.
-/**
-
- trait = the name of the metafunction class within the tti namespace.
-
- name = the name of the inner template.
-
- returns = a metafunction class called "boost::tti::trait" where 'trait' is the macro parameter.
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' template exists within the enclosing type,
- otherwise 'value' is false.
-
- The template must have all 'class' ( or 'typename' ) parameters types.
-
-*/
-#define BOOST_TTI_MTFC_TRAIT_HAS_TEMPLATE(trait,name) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(trait, name, false) \
- } \
- struct trait \
- { \
- template<class T> \
- struct apply : \
- BOOST_TTI_NAMESPACE::detail::trait<T> \
- { \
- }; \
- }; \
- } \
- } \
+ }; \
 /**/
   
 /// Expands to a metafunction which tests whether an inner class template with a particular name exists.
@@ -118,32 +70,7 @@
 #define BOOST_TTI_HAS_TEMPLATE(name) \
   BOOST_TTI_TRAIT_HAS_TEMPLATE \
   ( \
- BOOST_TTI_HAS_TEMPLATE_GEN_BASE(name), \
- name \
- ) \
-/**/
-
-/// Expands to a metafunction class which tests whether an inner class template with a particular name exists.
-/**
-
- name = the name of the inner template.
-
- returns = a metafunction class called "boost::tti::mtfc_has_template_name" where 'name' is the macro parameter.
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' template exists within the enclosing type,
- otherwise 'value' is false.
-
- The template must have all 'class' ( or 'typename' ) parameters types.
-
-*/
-#define BOOST_TTI_MTFC_HAS_TEMPLATE(name) \
- BOOST_TTI_MTFC_TRAIT_HAS_TEMPLATE \
- ( \
- BOOST_TTI_MTFC_HAS_TEMPLATE_GEN_BASE(name), \
+ BOOST_TTI_HAS_TEMPLATE_GEN(name), \
   name \
   ) \
 /**/

Modified: trunk/boost/tti/template_params.hpp
==============================================================================
--- trunk/boost/tti/template_params.hpp (original)
+++ trunk/boost/tti/template_params.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -8,6 +8,7 @@
 #define TTI_TEMPLATE_PARAMS_HPP
 
 #include <boost/config.hpp>
+#include <boost/preprocessor/cat.hpp>
 #include "mf/mf_template_params.hpp"
 #include "gen/template_params_gen.hpp"
 #include "detail/dtemplate_params.hpp"
@@ -44,64 +45,12 @@
     
 */
 #define BOOST_TTI_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(trait,name,tpSeq) \
-namespace boost \
- { \
- namespace tti \
+ TTI_DETAIL_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(BOOST_PP_CAT(trait,_detail),name,tpSeq) \
+ template<class T> \
+ struct trait : \
+ BOOST_PP_CAT(trait,_detail)<T> \
     { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(trait,name,tpSeq) \
- } \
- template<class T> \
- struct trait : \
- BOOST_TTI_NAMESPACE::detail::trait<T> \
- { \
- }; \
- } \
- } \
-/**/
-
-/// Expands to a metafunction class which tests whether an inner class template with a particular name and signature exists.
-/**
-
- trait = the name of the metafunction class within the tti namespace.
-
- name = the name of the inner class template.
-
- tpSeq = a Boost PP sequence which has the class template parameters.
- Each part of the template parameters separated by a comma ( , )
- is put in a separate sequence element.
-
- returns = a metafunction class called "boost::tti::trait" where 'trait' is the macro parameter.
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' class template with the signature
- as defined by the 'tpSeq' exists within the enclosing type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(trait,name,tpSeq) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_MTFC_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(trait,name,tpSeq) \
- } \
- struct trait \
- { \
- template<class T> \
- struct apply : \
- BOOST_TTI_NAMESPACE::detail::trait::apply<T> \
- { \
- }; \
- }; \
- } \
- } \
+ }; \
 /**/
 
 /// Expands to a metafunction which tests whether an inner class template with a particular name and signature exists.
@@ -127,36 +76,7 @@
 #define BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS(name,tpSeq) \
   BOOST_TTI_TRAIT_HAS_TEMPLATE_CHECK_PARAMS \
   ( \
- BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN_BASE(name), \
- name, \
- tpSeq \
- ) \
-/**/
-
-/// Expands to a metafunction class which tests whether an inner class template with a particular name and signature exists.
-/**
-
- name = the name of the inner class template.
-
- tpSeq = a Boost PP sequence which has the class template parameters.
- Each part of the template parameters separated by a comma ( , )
- is put in a separate sequence element.
-
- returns = a metafunction class called "boost::tti::mtfc_has_template_check_params_name" where 'name' is the macro parameter.
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' class template with the signature
- as defined by the 'tpSeq' exists within the enclosing type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_HAS_TEMPLATE_CHECK_PARAMS(name,tpSeq) \
- BOOST_TTI_MTFC_TRAIT_HAS_TEMPLATE_CHECK_PARAMS \
- ( \
- BOOST_TTI_MTFC_HAS_TEMPLATE_CHECK_PARAMS_GEN_BASE(name), \
+ BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(name), \
   name, \
   tpSeq \
   ) \

Modified: trunk/boost/tti/type.hpp
==============================================================================
--- trunk/boost/tti/type.hpp (original)
+++ trunk/boost/tti/type.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -8,6 +8,7 @@
 #define TTI_TYPE_HPP
 
 #include <boost/config.hpp>
+#include <boost/preprocessor/cat.hpp>
 #include "mf/mf_type.hpp"
 #include "gen/type_gen.hpp"
 #include "detail/dtype.hpp"
@@ -43,72 +44,17 @@
     
 */
 #define BOOST_TTI_TRAIT_HAS_TYPE(trait,name) \
-namespace boost \
- { \
- namespace tti \
+ TTI_DETAIL_TRAIT_HAS_TYPE(trait,name) \
+ template<class T,class U = BOOST_TTI_NAMESPACE::detail::notype> \
+ struct trait : \
+ BOOST_PP_CAT(trait,_detail) \
+ < \
+ T, \
+ U, \
+ typename BOOST_PP_CAT(trait,_detail_mpl)<T>::type \
+ > \
     { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_TYPE(trait,name) \
- } \
- template<class T,class U = BOOST_TTI_NAMESPACE::detail::notype> \
- struct trait : \
- BOOST_TTI_NAMESPACE::detail::trait \
- < \
- T, \
- U, \
- typename BOOST_TTI_NAMESPACE::detail::ttimpl::trait<T>::type \
- > \
- { \
- }; \
- } \
- } \
-/**/
-
-/// Expands to a metafunction class which tests whether an inner type with a particular name exists and optionally is a particular type.
-/**
-
- trait = the name of the metafunction class within the tti namespace.
-
- name = the name of the inner type.
-
- returns = a metfunction class called "boost::tti::trait" where 'trait' is the macro parameter.
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type in which to look for our 'name'.
-
- U = the type of the inner type named 'name' as an optional parameter.
-
- returns = 'value' is true if the 'name' type exists within the enclosing type
- and, if type U is specified, the 'name' type is the same as the type U,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_TRAIT_HAS_TYPE(trait,name) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_TYPE(trait,name) \
- } \
- struct trait \
- { \
- template<class T,class U = BOOST_TTI_NAMESPACE::detail::notype> \
- struct apply : \
- BOOST_TTI_NAMESPACE::detail::trait \
- < \
- T, \
- U, \
- typename BOOST_TTI_NAMESPACE::detail::ttimpl::trait<T>::type \
- > \
- { \
- }; \
- }; \
- } \
- } \
+ }; \
 /**/
 
 /// Expands to a metafunction which tests whether an inner type with a particular name exists and optionally is a particular type.
@@ -132,33 +78,7 @@
 #define BOOST_TTI_HAS_TYPE(name) \
   BOOST_TTI_TRAIT_HAS_TYPE \
   ( \
- BOOST_TTI_HAS_TYPE_GEN_BASE(name), \
- name \
- ) \
-/**/
-
-/// Expands to a metafunction class which tests whether an inner type with a particular name exists and optionally is a particular type.
-/**
-
- name = the name of the inner type.
-
- returns = a metafunction class called "boost::tti::mtfc_has_type_name" where 'name' is the macro parameter.
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type in which to look for our 'name'.
-
- U = the type of the inner type named 'name' as an optional parameter.
-
- returns = 'value' is true if the 'name' type exists within the enclosing type
- and, if type U is specified, the 'name' type is the same as the type U,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_HAS_TYPE(name) \
- BOOST_TTI_MTFC_TRAIT_HAS_TYPE \
- ( \
- BOOST_TTI_MTFC_HAS_TYPE_GEN_BASE(name), \
+ BOOST_TTI_HAS_TYPE_GEN(name), \
   name \
   ) \
 /**/

Modified: trunk/boost/tti/vm_template_params.hpp
==============================================================================
--- trunk/boost/tti/vm_template_params.hpp (original)
+++ trunk/boost/tti/vm_template_params.hpp 2011-08-18 16:42:08 EDT (Thu, 18 Aug 2011)
@@ -7,10 +7,11 @@
 #if !defined(TTI_VM_TEMPLATE_PARAMS_HPP)
 #define TTI_VM_TEMPLATE_PARAMS_HPP
 
-#include <boost/config.hpp>
+#include <boost/preprocessor/config/config.hpp>
 
-#if !defined(BOOST_NO_VARIADIC_MACROS)
+#if BOOST_PP_VARIADICS
 
+#include <boost/preprocessor/cat.hpp>
 #include "mf/mf_template_params.hpp"
 #include "gen/vm_template_params_gen.hpp"
 #include "detail/dvm_template_params.hpp"
@@ -45,69 +46,16 @@
     
 */
 #define BOOST_TTI_VM_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(trait,name,...) \
-namespace boost \
- { \
- namespace tti \
+ TTI_VM_DETAIL_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(BOOST_PP_CAT(trait,_detail),name,__VA_ARGS__) \
+ template<class T> \
+ struct trait \
     { \
- namespace detail \
- { \
- TTI_VM_DETAIL_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(trait,name,__VA_ARGS__) \
- } \
- template<class T> \
- struct trait \
- { \
- typedef typename BOOST_TTI_NAMESPACE::detail::trait<T>::type type; \
- \
- BOOST_STATIC_CONSTANT(bool,value=type::value); \
- }; \
- } \
- } \
+ typedef typename BOOST_PP_CAT(trait,_detail)<T>::type type; \
+ \
+ BOOST_STATIC_CONSTANT(bool,value=type::value); \
+ }; \
 /**/
 
-/// Expands to a metafunction class which tests whether an inner class template with a particular name and signature exists.
-/**
-
- trait = the name of the metafunction class within the tti namespace.
-
- name = the name of the inner class template.
-
- ... = variadic macro data which has the class template parameters.
-
- returns = a metafunction class called "boost::tti::trait" where 'trait' is the macro parameter.
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' class template, with the signature
- as defined by the '...' variadic macro data, exists within the enclosing type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_VM_MTFC_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(trait,name,...) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_VM_DETAIL_MTFC_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(trait,name,__VA_ARGS__) \
- } \
- struct trait \
- { \
- template<class T> \
- struct apply \
- { \
- typedef typename BOOST_TTI_NAMESPACE::detail::trait::apply<T>::type type; \
- \
- BOOST_STATIC_CONSTANT(bool,value=type::value); \
- }; \
- }; \
- } \
- } \
-/**/
-
-
 /// Expands to a metafunction which tests whether an inner class template with a particular name and signature exists.
 /**
 
@@ -129,38 +77,11 @@
 #define BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS(name,...) \
   BOOST_TTI_VM_TRAIT_HAS_TEMPLATE_CHECK_PARAMS \
   ( \
- BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_GEN_BASE(name), \
- name, \
- __VA_ARGS__ \
- ) \
-/**/
-
-/// Expands to a metafunction class which tests whether an inner class template with a particular name and signature exists.
-/**
-
- name = the name of the inner class template.
-
- ... = variadic macro data which has the class template parameters.
-
- returns = a metafunction class called "boost::tti::mtfc_has_template_check_params_name" where 'name' is the macro parameter.
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' class template, with the signature
- as defined by the '...' variadic macro data, exists within the enclosing type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_VM_MTFC_HAS_TEMPLATE_CHECK_PARAMS(name,...) \
- BOOST_TTI_VM_MTFC_TRAIT_HAS_TEMPLATE_CHECK_PARAMS \
- ( \
- BOOST_TTI_VM_MTFC_HAS_TEMPLATE_CHECK_PARAMS_GEN_BASE(name), \
+ BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_GEN(name), \
   name, \
   __VA_ARGS__ \
   ) \
 /**/
 
-#endif // !defined(BOOST_NO_VARIADIC_MACROS)
+#endif // BOOST_PP_VARIADICS
 #endif // TTI_VM_TEMPLATE_PARAMS_HPP


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk