Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r69850 - in sandbox/tti: boost/tti boost/tti/gen boost/tti/mf libs/tti/doc libs/tti/test
From: eldiener_at_[hidden]
Date: 2011-03-11 11:14:55


Author: eldiener
Date: 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
New Revision: 69850
URL: http://svn.boost.org/trac/boost/changeset/69850

Log:
MF header files for nullary type metafunctions are now separated and put into their own subdirectory.
Added:
   sandbox/tti/boost/tti/gen/comp_mem_fun_template_gen.hpp (contents, props changed)
   sandbox/tti/boost/tti/gen/comp_static_mem_fun_template_gen.hpp (contents, props changed)
   sandbox/tti/boost/tti/gen/static_mem_fun_template_gen.hpp (contents, props changed)
   sandbox/tti/boost/tti/gen/vm_comp_mem_fun_template_gen.hpp (contents, props changed)
   sandbox/tti/boost/tti/gen/vm_comp_static_mem_fun_template_gen.hpp (contents, props changed)
   sandbox/tti/boost/tti/gen/vm_mem_fun_template_gen.hpp (contents, props changed)
   sandbox/tti/boost/tti/gen/vm_static_mem_fun_template_gen.hpp (contents, props changed)
   sandbox/tti/boost/tti/mf/
   sandbox/tti/boost/tti/mf/mf_mem_data.hpp (contents, props changed)
   sandbox/tti/boost/tti/mf/mf_mem_fun.hpp (contents, props changed)
   sandbox/tti/boost/tti/mf/mf_mem_fun_template.hpp
      - copied, changed from r69349, /sandbox/tti/boost/tti/mf_mem_fun_template.hpp
   sandbox/tti/boost/tti/mf/mf_mem_type.hpp (contents, props changed)
   sandbox/tti/boost/tti/mf/mf_static_mem_data.hpp (contents, props changed)
   sandbox/tti/boost/tti/mf/mf_static_mem_fun.hpp (contents, props changed)
   sandbox/tti/boost/tti/mf/mf_static_mem_fun_template.hpp
      - copied, changed from r69733, /sandbox/tti/boost/tti/mf_static_mem_fun_template.hpp
   sandbox/tti/boost/tti/mf/mf_template.hpp (contents, props changed)
   sandbox/tti/boost/tti/mf/mf_template_params.hpp
      - copied unchanged from r68967, /sandbox/tti/boost/tti/mf_template_params.hpp
   sandbox/tti/boost/tti/mf/mf_type.hpp (contents, props changed)
Removed:
   sandbox/tti/boost/tti/comp_mem_fun_template_params.hpp
   sandbox/tti/boost/tti/comp_static_mem_fun_template_params.hpp
   sandbox/tti/boost/tti/gen/mem_fun_template_params_gen.hpp
   sandbox/tti/boost/tti/mem_fun_template_params.hpp
   sandbox/tti/boost/tti/mf_mem_fun_template.hpp
   sandbox/tti/boost/tti/mf_static_mem_fun_template.hpp
   sandbox/tti/boost/tti/mf_template_params.hpp
   sandbox/tti/boost/tti/static_mem_fun_template_params.hpp
Text files modified:
   sandbox/tti/boost/tti/comp_mem_fun.hpp | 1
   sandbox/tti/boost/tti/comp_mem_fun_template.hpp | 51 +++++++++++++-----
   sandbox/tti/boost/tti/comp_static_mem_fun.hpp | 1
   sandbox/tti/boost/tti/comp_static_mem_fun_template.hpp | 51 +++++++++++++-----
   sandbox/tti/boost/tti/gen/trait_gen.hpp | 1
   sandbox/tti/boost/tti/mem_data.hpp | 47 ----------------
   sandbox/tti/boost/tti/mem_fun.hpp | 59 ---------------------
   sandbox/tti/boost/tti/mem_fun_template.hpp | 46 ++++++++++++----
   sandbox/tti/boost/tti/mem_type.hpp | 110 ---------------------------------------
   sandbox/tti/boost/tti/mf/mf_mem_fun_template.hpp | 2
   sandbox/tti/boost/tti/mf/mf_static_mem_fun_template.hpp | 2
   sandbox/tti/boost/tti/static_mem_data.hpp | 47 ----------------
   sandbox/tti/boost/tti/static_mem_fun.hpp | 57 --------------------
   sandbox/tti/boost/tti/static_mem_fun_template.hpp | 53 +++++++++++++-----
   sandbox/tti/boost/tti/template.hpp | 43 ---------------
   sandbox/tti/boost/tti/template_params.hpp | 5 -
   sandbox/tti/boost/tti/tti.hpp | 4 -
   sandbox/tti/boost/tti/type.hpp | 52 +-----------------
   sandbox/tti/boost/tti/vm_comp_mem_fun_template.hpp | 6 +-
   sandbox/tti/boost/tti/vm_comp_static_mem_fun_template.hpp | 6 +-
   sandbox/tti/boost/tti/vm_mem_fun_template.hpp | 8 +-
   sandbox/tti/boost/tti/vm_static_mem_fun_template.hpp | 8 +-
   sandbox/tti/boost/tti/vm_template_params.hpp | 3
   sandbox/tti/libs/tti/doc/Jamfile.v2 | 10 +--
   sandbox/tti/libs/tti/doc/index.idx | 10 +--
   sandbox/tti/libs/tti/test/test_has_mem_fun_template.hpp | 17 ++---
   sandbox/tti/libs/tti/test/test_has_static_mem_fun_template.hpp | 13 ++--
   sandbox/tti/libs/tti/test/test_mf_has_mem_fun_template.hpp | 39 ++++++-------
   sandbox/tti/libs/tti/test/test_mf_has_static_fun_template.hpp | 31 +++++-----
   29 files changed, 224 insertions(+), 559 deletions(-)

Modified: sandbox/tti/boost/tti/comp_mem_fun.hpp
==============================================================================
--- sandbox/tti/boost/tti/comp_mem_fun.hpp (original)
+++ sandbox/tti/boost/tti/comp_mem_fun.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -4,7 +4,6 @@
 #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"
 

Modified: sandbox/tti/boost/tti/comp_mem_fun_template.hpp
==============================================================================
--- sandbox/tti/boost/tti/comp_mem_fun_template.hpp (original)
+++ sandbox/tti/boost/tti/comp_mem_fun_template.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -4,7 +4,10 @@
 #include <boost/config.hpp>
 #include <boost/mpl/apply.hpp>
 #include <boost/mpl/identity.hpp>
-#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/seq/size.hpp>
+#include <boost/preprocessor/seq/to_tuple.hpp>
+#include <boost/preprocessor/tuple/to_list.hpp>
+#include "gen/comp_mem_fun_template_gen.hpp"
 #include "detail/dcomp_mem_fun_template.hpp"
 
 /*
@@ -16,13 +19,17 @@
 /** \file
 */
 
-/// Expands to a metafunction which tests whether a member function template with a particular name exists.
+/// Expands to a metafunction which tests whether a member function template with a particular name and signature exists.
 /**
 
     trait = the name of the metafunction within the tti namespace.
     
     name = the name of the inner member.
 
+ tpseq = a Boost PP sequence which has the function template parameters.
+ Each part of the template parameters separated by a comma ( , )
+ is put in a separate sequence element.
+
     returns = a metafunction called "boost::tti::trait" where 'trait' is the macro parameter.<br />
     
               The metafunction types and return:
@@ -34,14 +41,14 @@
                           otherwise 'value' is false.
                           
 */
-#define BOOST_TTI_TRAIT_HAS_COMP_MEMBER_FUNCTION_TEMPLATE(trait,name) \
+#define BOOST_TTI_TRAIT_HAS_COMP_MEMBER_FUNCTION_TEMPLATE(trait,name,tpseq) \
 namespace boost \
   { \
   namespace tti \
     { \
     namespace detail \
       { \
- TTI_DETAIL_TRAIT_HAS_COMP_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_NIL) \
+ TTI_DETAIL_TRAIT_HAS_COMP_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_TUPLE_TO_LIST(BOOST_PP_SEQ_SIZE(tpseq),BOOST_PP_SEQ_TO_TUPLE(tpseq))) \
       } \
     template<class T> \
     struct trait : \
@@ -52,13 +59,17 @@
   } \
 /**/
 
-/// Expands to a metafunction class which tests whether a member function template with a particular name exists.
+/// Expands to a metafunction class which tests whether a member function 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 member.
 
+ tpseq = a Boost PP sequence which has the function 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:
@@ -70,14 +81,14 @@
                           otherwise 'value' is false.
                           
 */
-#define BOOST_TTI_MTFC_TRAIT_HAS_COMP_MEMBER_FUNCTION_TEMPLATE(trait,name) \
+#define BOOST_TTI_MTFC_TRAIT_HAS_COMP_MEMBER_FUNCTION_TEMPLATE(trait,name,tpseq) \
 namespace boost \
   { \
   namespace tti \
     { \
     namespace detail \
       { \
- TTI_DETAIL_TRAIT_HAS_COMP_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_NIL) \
+ TTI_DETAIL_TRAIT_HAS_COMP_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_TUPLE_TO_LIST(BOOST_PP_SEQ_SIZE(tpseq),BOOST_PP_SEQ_TO_TUPLE(tpseq))) \
       } \
     struct trait \
       { \
@@ -91,11 +102,15 @@
   } \
 /**/
 
-/// Expands to a metafunction which tests whether a member function template with a particular name exists.
+/// Expands to a metafunction which tests whether a member function template with a particular name and signature exists.
 /**
 
     name = the name of the inner member.
 
+ tpseq = a Boost PP sequence which has the function template parameters.
+ Each part of the template parameters separated by a comma ( , )
+ is put in a separate sequence element.
+
     returns = a metafunction called "boost::tti::has_comp_member_function_template_name" where 'name' is the macro parameter.
     
               The metafunction types and return:
@@ -107,19 +122,24 @@
                           otherwise 'value' is false.
                           
 */
-#define BOOST_TTI_HAS_COMP_MEMBER_FUNCTION_TEMPLATE(name) \
+#define BOOST_TTI_HAS_COMP_MEMBER_FUNCTION_TEMPLATE(name,tpseq) \
   BOOST_TTI_TRAIT_HAS_COMP_MEMBER_FUNCTION_TEMPLATE \
   ( \
- BOOST_PP_CAT(has_comp_member_function_template_,name), \
- name \
+ BOOST_TTI_HAS_COMP_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name), \
+ name, \
+ tpseq \
   ) \
 /**/
 
-/// Expands to a metafunction class which tests whether a member function template with a particular name exists.
+/// Expands to a metafunction class which tests whether a member function template with a particular name and signature exists.
 /**
 
     name = the name of the inner member.
 
+ tpseq = a Boost PP sequence which has the function 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_comp_member_function_template_name" where 'name' is the macro parameter.
     
               The metafunction class's 'apply' metafunction types and return:
@@ -131,11 +151,12 @@
                           otherwise 'value' is false.
                           
 */
-#define BOOST_TTI_MTFC_HAS_COMP_MEMBER_FUNCTION_TEMPLATE(name) \
+#define BOOST_TTI_MTFC_HAS_COMP_MEMBER_FUNCTION_TEMPLATE(name,tpseq) \
   BOOST_TTI_MTFC_TRAIT_HAS_COMP_MEMBER_FUNCTION_TEMPLATE \
   ( \
- BOOST_PP_CAT(mtfc_has_comp_member_function_template_,name), \
- name \
+ BOOST_TTI_MTFC_HAS_COMP_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name), \
+ name, \
+ tpseq \
   ) \
 /**/
 

Deleted: sandbox/tti/boost/tti/comp_mem_fun_template_params.hpp
==============================================================================
--- sandbox/tti/boost/tti/comp_mem_fun_template_params.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
+++ (empty file)
@@ -1,163 +0,0 @@
-#if !defined(TTI_COMP_MEM_FUN_TEMPLATE_PARAMS_HPP)
-#define TTI_COMP_MEM_FUN_TEMPLATE_PARAMS_HPP
-
-#include <boost/config.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/seq/size.hpp>
-#include <boost/preprocessor/seq/to_tuple.hpp>
-#include <boost/preprocessor/tuple/to_list.hpp>
-#include "detail/dcomp_mem_fun_template.hpp"
-
-/*
-
- The succeeding comments in this file are in doxygen format.
-
-*/
-
-/** \file
-*/
-
-/// Expands to a metafunction which tests whether a member function template with a particular name and signature exists.
-/**
-
- trait = the name of the metafunction within the tti namespace.
-
- name = the name of the inner member.
-
- tpseq = a Boost PP sequence which has the function template parameters.
- Each part of the template parameters separated by a comma ( , )
- is put in a separate sequence element.
-
- returns = a metafunction called "boost::tti::trait" where 'trait' is the macro parameter.<br />
-
- The metafunction types and return:
-
- T = the type, in the form of a member function pointer,
- 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_TRAIT_HAS_COMP_MEMBER_FUNCTION_TEMPLATE_PARAMS(trait,name,tpseq) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_COMP_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_TUPLE_TO_LIST(BOOST_PP_SEQ_SIZE(tpseq),BOOST_PP_SEQ_TO_TUPLE(tpseq))) \
- } \
- template<class T> \
- struct trait : \
- detail::trait<T> \
- { \
- }; \
- } \
- } \
-/**/
-
-/// Expands to a metafunction class which tests whether a member function 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 member.
-
- tpseq = a Boost PP sequence which has the function 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 type, in the form of a member function pointer,
- 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_TEMPLATE_PARAMS(trait,name,tpseq) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_COMP_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_TUPLE_TO_LIST(BOOST_PP_SEQ_SIZE(tpseq),BOOST_PP_SEQ_TO_TUPLE(tpseq))) \
- } \
- struct trait \
- { \
- template<class T> \
- struct apply : \
- detail::trait<T> \
- { \
- }; \
- }; \
- } \
- } \
-/**/
-
-/// Expands to a metafunction which tests whether a member function template with a particular name and signature exists.
-/**
-
- name = the name of the inner member.
-
- tpseq = a Boost PP sequence which has the function template parameters.
- Each part of the template parameters separated by a comma ( , )
- is put in a separate sequence element.
-
- returns = a metafunction called "boost::tti::has_comp_member_function_template_name" where 'name' is the macro parameter.
-
- The metafunction types and return:
-
- T = the type, in the form of a member function pointer,
- 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_HAS_COMP_MEMBER_FUNCTION_TEMPLATE_PARAMS(name,tpseq) \
- BOOST_TTI_TRAIT_HAS_COMP_MEMBER_FUNCTION_TEMPLATE_PARAMS \
- ( \
- BOOST_PP_CAT(has_comp_member_function_template_,name), \
- name, \
- tpseq \
- ) \
-/**/
-
-/// Expands to a metafunction class which tests whether a member function template with a particular name and signature exists.
-/**
-
- name = the name of the inner member.
-
- tpseq = a Boost PP sequence which has the function 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_comp_member_function_template_name" where 'name' is the macro parameter.
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the type, in the form of a member function pointer,
- 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_TEMPLATE_PARAMS(name,tpseq) \
- BOOST_TTI_MTFC_TRAIT_HAS_COMP_MEMBER_FUNCTION_TEMPLATE_PARAMS \
- ( \
- BOOST_PP_CAT(mtfc_has_comp_member_function_template_,name), \
- name, \
- tpseq \
- ) \
-/**/
-
-#endif // TTI_COMP_MEM_FUN_TEMPLATE_PARAMS_HPP

Modified: sandbox/tti/boost/tti/comp_static_mem_fun.hpp
==============================================================================
--- sandbox/tti/boost/tti/comp_static_mem_fun.hpp (original)
+++ sandbox/tti/boost/tti/comp_static_mem_fun.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -4,7 +4,6 @@
 #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"
 

Modified: sandbox/tti/boost/tti/comp_static_mem_fun_template.hpp
==============================================================================
--- sandbox/tti/boost/tti/comp_static_mem_fun_template.hpp (original)
+++ sandbox/tti/boost/tti/comp_static_mem_fun_template.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -4,7 +4,10 @@
 #include <boost/config.hpp>
 #include <boost/mpl/apply.hpp>
 #include <boost/mpl/identity.hpp>
-#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/seq/size.hpp>
+#include <boost/preprocessor/seq/to_tuple.hpp>
+#include <boost/preprocessor/tuple/to_list.hpp>
+#include "gen/comp_static_mem_fun_template_gen.hpp"
 #include "detail/dcomp_static_mem_fun_template.hpp"
 
 /*
@@ -16,13 +19,17 @@
 /** \file
 */
 
-/// Expands to a metafunction which tests whether a static member function template with a particular name and composite type exists.
+/// Expands to a metafunction which tests whether a static member function template with a particular name/signature and composite type exists.
 /**
 
     trait = the name of the metafunction within the tti namespace.
     
     name = the name of the inner member.
 
+ tpseq = a Boost PP sequence which has the function template parameters.
+ Each part of the template parameters separated by a comma ( , )
+ is put in a separate sequence element.
+
     returns = a metafunction called "boost::tti::trait" where 'trait' is the macro parameter.
     
               The metafunction types and return:
@@ -38,14 +45,14 @@
                           otherwise 'value' is false.
                           
 */
-#define BOOST_TTI_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE(trait,name) \
+#define BOOST_TTI_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE(trait,name,tpseq) \
 namespace boost \
   { \
   namespace tti \
     { \
     namespace detail \
       { \
- TTI_DETAIL_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_NIL) \
+ TTI_DETAIL_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_TUPLE_TO_LIST(BOOST_PP_SEQ_SIZE(tpseq),BOOST_PP_SEQ_TO_TUPLE(tpseq))) \
       } \
     template<class T,class Type> \
     struct trait : \
@@ -56,13 +63,17 @@
   } \
 /**/
 
-/// Expands to a metafunction class which tests whether a static member function template with a particular name and composite type exists.
+/// Expands to a metafunction class which tests whether a static member function template with a particular name/signature and composite type exists.
 /**
 
     trait = the name of the metafunction class within the tti namespace.
     
     name = the name of the inner member.
 
+ tpseq = a Boost PP sequence which has the function 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.<br />
     
               The metafunction class's 'apply' metafunction types and return:
@@ -78,14 +89,14 @@
                           otherwise 'value' is false.
                           
 */
-#define BOOST_TTI_MTFC_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE(trait,name) \
+#define BOOST_TTI_MTFC_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE(trait,name,tpseq) \
 namespace boost \
   { \
   namespace tti \
     { \
     namespace detail \
       { \
- TTI_DETAIL_MTFC_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_NIL) \
+ TTI_DETAIL_MTFC_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_TUPLE_TO_LIST(BOOST_PP_SEQ_SIZE(tpseq),BOOST_PP_SEQ_TO_TUPLE(tpseq))) \
       } \
     struct trait \
       { \
@@ -100,11 +111,15 @@
 /**/
 
 
-/// Expands to a metafunction which tests whether a static member function template with a particular name and composite type exists.
+/// Expands to a metafunction which tests whether a static member function template with a particular name/signature and composite type exists.
 /**
 
     name = the name of the inner member.
 
+ tpseq = a Boost PP sequence which has the function template parameters.
+ Each part of the template parameters separated by a comma ( , )
+ is put in a separate sequence element.
+
     returns = a metafunction called "boost::tti::has_comp_static_member_function_template_name" where 'name' is the macro parameter.<br />
     
               The metafunction types and return:
@@ -120,19 +135,24 @@
                           otherwise 'value' is false.
                           
 */
-#define BOOST_TTI_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE(name) \
+#define BOOST_TTI_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE(name,tpseq) \
   BOOST_TTI_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE \
   ( \
- BOOST_PP_CAT(has_comp_static_member_function_template_,name), \
- name \
+ BOOST_TTI_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name), \
+ name, \
+ tpseq \
   ) \
 /**/
 
-/// Expands to a metafunction class which tests whether a static member function template with a particular name and composite type exists.
+/// Expands to a metafunction class which tests whether a static member function template with a particular name/signature and composite type exists.
 /**
 
     name = the name of the inner member.
 
+ tpseq = a Boost PP sequence which has the function 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_comp_static_member_function_template_name" where 'name' is the macro parameter.<br />
     
               The metafunction class's 'apply' metafunction types and return:
@@ -148,11 +168,12 @@
                           otherwise 'value' is false.
                           
 */
-#define BOOST_TTI_MTFC_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE(name) \
+#define BOOST_TTI_MTFC_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE(name,tpseq) \
   BOOST_TTI_MTFC_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE \
   ( \
- BOOST_PP_CAT(mtfc_has_comp_static_member_function_template_,name), \
- name \
+ BOOST_TTI_MTFC_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name), \
+ name, \
+ tpseq \
   ) \
 /**/
 

Deleted: sandbox/tti/boost/tti/comp_static_mem_fun_template_params.hpp
==============================================================================
--- sandbox/tti/boost/tti/comp_static_mem_fun_template_params.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
+++ (empty file)
@@ -1,180 +0,0 @@
-#if !defined(TTI_COMP_STATIC_MEM_FUN_TEMPLATE_PARAMS_HPP)
-#define TTI_COMP_STATIC_MEM_FUN_TEMPLATE_PARAMS_HPP
-
-#include <boost/config.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/seq/size.hpp>
-#include <boost/preprocessor/seq/to_tuple.hpp>
-#include <boost/preprocessor/tuple/to_list.hpp>
-#include "detail/dcomp_static_mem_fun_template.hpp"
-
-/*
-
- The succeeding comments in this file are in doxygen format.
-
-*/
-
-/** \file
-*/
-
-/// Expands to a metafunction which tests whether a static member function template with a particular name/signature and composite type exists.
-/**
-
- trait = the name of the metafunction within the tti namespace.
-
- name = the name of the inner member.
-
- tpseq = a Boost PP sequence which has the function template parameters.
- Each part of the template parameters separated by a comma ( , )
- is put in a separate sequence element.
-
- returns = a metafunction called "boost::tti::trait" where 'trait' is the macro parameter.
-
- The 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_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE_PARAMS(trait,name,tpseq) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_TUPLE_TO_LIST(BOOST_PP_SEQ_SIZE(tpseq),BOOST_PP_SEQ_TO_TUPLE(tpseq))) \
- } \
- template<class T,class Type> \
- struct trait : \
- detail::trait<T,Type> \
- { \
- }; \
- } \
- } \
-/**/
-
-/// Expands to a metafunction class which tests whether a static member function template with a particular name/signature and composite type exists.
-/**
-
- trait = the name of the metafunction class within the tti namespace.
-
- name = the name of the inner member.
-
- tpseq = a Boost PP sequence which has the function 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.<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_TEMPLATE_PARAMS(trait,name,tpseq) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_MTFC_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_TUPLE_TO_LIST(BOOST_PP_SEQ_SIZE(tpseq),BOOST_PP_SEQ_TO_TUPLE(tpseq))) \
- } \
- struct trait \
- { \
- template<class T,class Type> \
- struct apply : \
- detail::trait::apply<T,Type> \
- { \
- }; \
- }; \
- } \
- } \
-/**/
-
-
-/// Expands to a metafunction which tests whether a static member function template with a particular name/signature and composite type exists.
-/**
-
- name = the name of the inner member.
-
- tpseq = a Boost PP sequence which has the function template parameters.
- Each part of the template parameters separated by a comma ( , )
- is put in a separate sequence element.
-
- returns = a metafunction called "boost::tti::has_comp_static_member_function_template_name" where 'name' is the macro parameter.<br />
-
- The 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_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE_PARAMS(name,tpseq) \
- BOOST_TTI_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE_PARAMS \
- ( \
- BOOST_PP_CAT(has_comp_static_member_function_template_,name), \
- name, \
- tpseq \
- ) \
-/**/
-
-/// Expands to a metafunction class which tests whether a static member function template with a particular name/signature and composite type exists.
-/**
-
- name = the name of the inner member.
-
- tpseq = a Boost PP sequence which has the function 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_comp_static_member_function_template_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_TEMPLATE_PARAMS(name,tpseq) \
- BOOST_TTI_MTFC_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE_PARAMS \
- ( \
- BOOST_PP_CAT(mtfc_has_comp_static_member_function_template_,name), \
- name, \
- tpseq \
- ) \
-/**/
-
-#endif // TTI_COMP_STATIC_MEM_FUN_TEMPLATE_PARAMS_HPP

Added: sandbox/tti/boost/tti/gen/comp_mem_fun_template_gen.hpp
==============================================================================
--- (empty file)
+++ sandbox/tti/boost/tti/gen/comp_mem_fun_template_gen.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -0,0 +1,24 @@
+#if !defined(TTI_COMP_MEM_FUN_TEMPLATE_GEN_HPP)
+#define TTI_COMP_MEM_FUN_TEMPLATE_GEN_HPP
+
+#include <boost/config.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include "trait_gen.hpp"
+
+#define BOOST_TTI_HAS_COMP_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+ BOOST_PP_CAT(has_comp_member_function_template_,name) \
+/**/
+
+#define BOOST_TTI_MTFC_HAS_COMP_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+ BOOST_PP_CAT(mtfc_has_comp_member_function_template_,name) \
+/**/
+
+#define BOOST_TTI_HAS_COMP_MEMBER_FUNCTION_TEMPLATE_GEN(name) \
+ boost::tti::BOOST_TTI_HAS_COMP_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+/**/
+
+#define BOOST_TTI_MTFC_HAS_COMP_MEMBER_FUNCTION_TEMPLATE_GEN(name) \
+ boost::tti::BOOST_TTI_MTFC_HAS_COMP_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+/**/
+
+#endif // TTI_COMP_MEM_FUN_TEMPLATE_GEN_HPP

Added: sandbox/tti/boost/tti/gen/comp_static_mem_fun_template_gen.hpp
==============================================================================
--- (empty file)
+++ sandbox/tti/boost/tti/gen/comp_static_mem_fun_template_gen.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -0,0 +1,24 @@
+#if !defined(TTI_COMP_STATIC_MEM_FUN_TEMPLATE_GEN_HPP)
+#define TTI_COMP_STATIC_MEM_FUN_TEMPLATE_GEN_HPP
+
+#include <boost/config.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include "trait_gen.hpp"
+
+#define BOOST_TTI_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+ BOOST_PP_CAT(has_comp_static_member_function_template_,name) \
+/**/
+
+#define BOOST_TTI_MTFC_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+ BOOST_PP_CAT(mtfc_has_comp_static_member_function_template_,name) \
+/**/
+
+#define BOOST_TTI_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN(name) \
+ boost::tti::BOOST_TTI_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+/**/
+
+#define BOOST_TTI_MTFC_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN(name) \
+ boost::tti::BOOST_TTI_MTFC_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+/**/
+
+#endif // TTI_COMP_STATIC_MEM_FUN_TEMPLATE_GEN_HPP

Deleted: sandbox/tti/boost/tti/gen/mem_fun_template_params_gen.hpp
==============================================================================
--- sandbox/tti/boost/tti/gen/mem_fun_template_params_gen.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
+++ (empty file)
@@ -1,24 +0,0 @@
-#if !defined(TTI_MEMBER_FUNCTION_TEMPLATE_PARAMS_GEN_HPP)
-#define TTI_MEMBER_FUNCTION_TEMPLATE_PARAMS_GEN_HPP
-
-#include <boost/config.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include "trait_gen.hpp"
-
-#define BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS_GEN_BASE(name) \
- BOOST_PP_CAT(has_member_function_template_,name) \
-/**/
-
-#define BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS_GEN_BASE(name) \
- BOOST_PP_CAT(mtfc_has_member_function_template_,name) \
-/**/
-
-#define BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS_GEN(name) \
- boost::tti::BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS_GEN_BASE(name) \
-/**/
-
-#define BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS_GEN(name) \
- boost::tti::BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS_GEN_BASE(name) \
-/**/
-
-#endif // TTI_MEMBER_FUNCTION_TEMPLATE_PARAMS_GEN_HPP

Added: sandbox/tti/boost/tti/gen/static_mem_fun_template_gen.hpp
==============================================================================
--- (empty file)
+++ sandbox/tti/boost/tti/gen/static_mem_fun_template_gen.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -0,0 +1,24 @@
+#if !defined(TTI_STATIC_MEM_FUN_TEMPLATE_GEN_HPP)
+#define TTI_STATIC_MEM_FUN_TEMPLATE_GEN_HPP
+
+#include <boost/config.hpp>
+#include <boost/preprocessor/cat.hpp>
+#include "trait_gen.hpp"
+
+#define BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+ BOOST_PP_CAT(has_static_member_function_template_,name) \
+/**/
+
+#define BOOST_TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+ BOOST_PP_CAT(mtfc_has_static_member_function_template_,name) \
+/**/
+
+#define BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN(name) \
+ boost::tti::BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+/**/
+
+#define BOOST_TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN(name) \
+ boost::tti::BOOST_TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+/**/
+
+#endif // TTI_STATIC_MEM_FUN_TEMPLATE_GEN_HPP

Modified: sandbox/tti/boost/tti/gen/trait_gen.hpp
==============================================================================
--- sandbox/tti/boost/tti/gen/trait_gen.hpp (original)
+++ sandbox/tti/boost/tti/gen/trait_gen.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -2,7 +2,6 @@
 #define TTI_TRAIT_GEN_HPP
 
 #include <boost/config.hpp>
-#include <boost/preprocessor/cat.hpp>
 
 #define BOOST_TTI_TRAIT_GEN_BASE(name) \
   name \

Added: sandbox/tti/boost/tti/gen/vm_comp_mem_fun_template_gen.hpp
==============================================================================
--- (empty file)
+++ sandbox/tti/boost/tti/gen/vm_comp_mem_fun_template_gen.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -0,0 +1,28 @@
+#if !defined(TTI_VM_COMP_MEM_FUN_TEMPLATE_GEN_HPP)
+#define TTI_VM_COMP_MEM_FUN_TEMPLATE_GEN_HPP
+
+#include <boost/config.hpp>
+
+#if !defined(BOOST_NO_VARIADIC_MACROS)
+
+#include <boost/preprocessor/cat.hpp>
+#include "trait_gen.hpp"
+
+#define BOOST_TTI_VM_HAS_COMP_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+ BOOST_PP_CAT(has_comp_member_function_template_,name) \
+/**/
+
+#define BOOST_TTI_VM_MTFC_HAS_COMP_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+ BOOST_PP_CAT(mtfc_has_comp_member_function_template_,name) \
+/**/
+
+#define BOOST_TTI_VM_HAS_COMP_MEMBER_FUNCTION_TEMPLATE_GEN(name) \
+ boost::tti::BOOST_TTI_VM_HAS_COMP_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+/**/
+
+#define BOOST_TTI_VM_MTFC_HAS_COMP_MEMBER_FUNCTION_TEMPLATE_GEN(name) \
+ boost::tti::BOOST_TTI_VM_MTFC_HAS_COMP_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+/**/
+
+#endif // !defined(BOOST_NO_VARIADIC_MACROS)
+#endif // TTI_VM_COMP_MEM_FUN_TEMPLATE_GEN_HPP

Added: sandbox/tti/boost/tti/gen/vm_comp_static_mem_fun_template_gen.hpp
==============================================================================
--- (empty file)
+++ sandbox/tti/boost/tti/gen/vm_comp_static_mem_fun_template_gen.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -0,0 +1,28 @@
+#if !defined(TTI_VM_COMP_STATIC_MEM_FUN_TEMPLATE_GEN_HPP)
+#define TTI_VM_COMP_STATIC_MEM_FUN_TEMPLATE_GEN_HPP
+
+#include <boost/config.hpp>
+
+#if !defined(BOOST_NO_VARIADIC_MACROS)
+
+#include <boost/preprocessor/cat.hpp>
+#include "trait_gen.hpp"
+
+#define BOOST_TTI_VM_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+ BOOST_PP_CAT(has_comp_static_member_function_template_,name) \
+/**/
+
+#define BOOST_TTI_VM_MTFC_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+ BOOST_PP_CAT(mtfc_has_comp_static_member_function_template_,name) \
+/**/
+
+#define BOOST_TTI_VM_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN(name) \
+ boost::tti::BOOST_TTI_VM_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+/**/
+
+#define BOOST_TTI_VM_MTFC_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN(name) \
+ boost::tti::BOOST_TTI_VM_MTFC_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+/**/
+
+#endif // !defined(BOOST_NO_VARIADIC_MACROS)
+#endif // TTI_VM_COMP_STATIC_MEM_FUN_TEMPLATE_GEN_HPP

Added: sandbox/tti/boost/tti/gen/vm_mem_fun_template_gen.hpp
==============================================================================
--- (empty file)
+++ sandbox/tti/boost/tti/gen/vm_mem_fun_template_gen.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -0,0 +1,28 @@
+#if !defined(TTI_VM_MEM_FUN_TEMPLATE_GEN_HPP)
+#define TTI_VM_MEM_FUN_TEMPLATE_GEN_HPP
+
+#include <boost/config.hpp>
+
+#if !defined(BOOST_NO_VARIADIC_MACROS)
+
+#include <boost/preprocessor/cat.hpp>
+#include "trait_gen.hpp"
+
+#define BOOST_TTI_VM_HAS_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+ BOOST_PP_CAT(has_member_function_template_,name) \
+/**/
+
+#define BOOST_TTI_VM_MTFC_HAS_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+ BOOST_PP_CAT(mtfc_has_member_function_template_,name) \
+/**/
+
+#define BOOST_TTI_VM_HAS_MEMBER_FUNCTION_TEMPLATE_GEN(name) \
+ boost::tti::BOOST_TTI_VM_HAS_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+/**/
+
+#define BOOST_TTI_VM_MTFC_HAS_MEMBER_FUNCTION_TEMPLATE_GEN(name) \
+ boost::tti::BOOST_TTI_VM_MTFC_HAS_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+/**/
+
+#endif // !defined(BOOST_NO_VARIADIC_MACROS)
+#endif // TTI_VM_MEM_FUN_TEMPLATE_GEN_HPP

Added: sandbox/tti/boost/tti/gen/vm_static_mem_fun_template_gen.hpp
==============================================================================
--- (empty file)
+++ sandbox/tti/boost/tti/gen/vm_static_mem_fun_template_gen.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -0,0 +1,28 @@
+#if !defined(TTI_VM_STATIC_MEM_FUN_TEMPLATE_GEN_HPP)
+#define TTI_VM_STATIC_MEM_FUN_TEMPLATE_GEN_HPP
+
+#include <boost/config.hpp>
+
+#if !defined(BOOST_NO_VARIADIC_MACROS)
+
+#include <boost/preprocessor/cat.hpp>
+#include "trait_gen.hpp"
+
+#define BOOST_TTI_VM_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+ BOOST_PP_CAT(has_static_member_function_template_,name) \
+/**/
+
+#define BOOST_TTI_VM_MTFC_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+ BOOST_PP_CAT(mtfc_has_static_member_function_template_,name) \
+/**/
+
+#define BOOST_TTI_VM_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN(name) \
+ boost::tti::BOOST_TTI_VM_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+/**/
+
+#define BOOST_TTI_VM_MTFC_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN(name) \
+ boost::tti::BOOST_TTI_VM_MTFC_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name) \
+/**/
+
+#endif // !defined(BOOST_NO_VARIADIC_MACROS)
+#endif // TTI_VM_STATIC_MEM_FUN_TEMPLATE_GEN_HPP

Modified: sandbox/tti/boost/tti/mem_data.hpp
==============================================================================
--- sandbox/tti/boost/tti/mem_data.hpp (original)
+++ sandbox/tti/boost/tti/mem_data.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -2,11 +2,8 @@
 #define TTI_MEMBER_DATA_HPP
 
 #include <boost/config.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/placeholders.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"
 #include "detail/dmem_data.hpp"
 
@@ -146,46 +143,4 @@
   ) \
 /**/
 
-namespace boost
- {
- namespace tti
- {
-
- /// A metafunction which checks whether a member data exists within an enclosing type.
- /**
-
- This metafunction takes its specific types as nullary metafunctions whose typedef 'type' member is the actual type used.
-
- The metafunction types and return:
-
- HasMemberData = a Boost MPL lambda expression using the metafunction generated from the TTI_HAS_MEMBER_DATA ( or TTI_TRAIT_HAS_MEMBER_DATA ) macro.<br />
- The easiest way to generate the lambda expression is to use a Boost MPL placeholder expression of the form 'metafunction\<_,_\>'.
- You can also use the metafunction class generated by the TTI_MTFC_HAS_MEMBER_DATA ( or TTI_MTFC_TRAIT_HAS_MEMBER_DATA ) macro.
-
- T = the enclosing type as a nullary metafunction.
-
- R = the type of the member data as a nullary metafunction.
-
- returns = 'value' is true if the member data exists within the enclosing type,
- otherwise 'value' is false.
-
- */
- template
- <
- class HasMemberData,
- class T,
- class R
- >
- struct mf_has_member_data :
- boost::mpl::apply
- <
- HasMemberData,
- typename T::type,
- typename R::type
- >::type
- {
- };
- }
- }
-
 #endif // TTI_MEMBER_DATA_HPP

Modified: sandbox/tti/boost/tti/mem_fun.hpp
==============================================================================
--- sandbox/tti/boost/tti/mem_fun.hpp (original)
+++ sandbox/tti/boost/tti/mem_fun.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -3,16 +3,11 @@
 
 #include <boost/config.hpp>
 #include <boost/function_types/property_tags.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/placeholders.hpp>
-#include <boost/mpl/transform.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"
 #include "detail/dmem_fun.hpp"
-#include "detail/dtself.hpp"
 
 /*
 
@@ -166,56 +161,4 @@
   ) \
 /**/
 
-namespace boost
- {
- namespace tti
- {
-
- /// A metafunction which checks whether a member function exists within an enclosing type.
- /**
-
- This metafunction takes its specific types, except for the optional parameters, as nullary metafunctions whose typedef 'type' member is the actual type used.
-
- The metafunction types and return:
-
- HasMemberFunction = a Boost MPL lambda expression using the metafunction generated from the TTI_HAS_MEMBER_FUNCTION ( or TTI_TRAIT_HAS_MEMBER_FUNCTION ) macro.<br />
- The easiest way to generate the lambda expression is to use a Boost MPL placeholder expression of the form 'metafunction\<_,_\> ( or optionally 'metafunction\<_,_,_\> or ' 'metafunction\<_,_,_,_\> )'.
- You can also use the metafunction class generated by the TTI_MTFC_HAS_MEMBER_FUNCTION ( or TTI_MTFC_TRAIT_HAS_MEMBER_FUNCTION ) macro.
-
- T = the enclosing type as a nullary metafunction.
-
- R = the return type of the member function as a nullary metafunction.
-
- FS = an optional parameter which is the parameters of the member function, each as a nullary metafunction, as a boost::mpl forward sequence.<br />
- This parameter defaults to boost::mpl::vector<>.
-
- TAG = an optional parameter which is a boost::function_types tag to apply to the member function.<br />
- This parameter defaults to boost::function_types::null_tag.
-
- returns = 'value' is true if the member function exists within the enclosing type,
- otherwise 'value' is false.
-
- */
- template
- <
- class HasMemberFunction,
- class T,
- class R,
- class FS = boost::mpl::vector<>,
- class TAG = boost::function_types::null_tag
- >
- struct mf_has_member_function :
- boost::mpl::apply
- <
- HasMemberFunction,
- typename T::type,
- typename R::type,
- typename boost::mpl::transform<FS,detail::tself<boost::mpl::_1> >::type,
- TAG
- >::type
- {
- };
- }
- }
-
 #endif // TTI_MEMBER_FUNCTION_HPP

Modified: sandbox/tti/boost/tti/mem_fun_template.hpp
==============================================================================
--- sandbox/tti/boost/tti/mem_fun_template.hpp (original)
+++ sandbox/tti/boost/tti/mem_fun_template.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -4,9 +4,11 @@
 #include <boost/config.hpp>
 #include <boost/function_types/property_tags.hpp>
 #include <boost/mpl/vector.hpp>
-#include <boost/preprocessor/cat.hpp>
+#include <boost/preprocessor/seq/size.hpp>
+#include <boost/preprocessor/seq/to_tuple.hpp>
+#include <boost/preprocessor/tuple/to_list.hpp>
 #include <boost/type_traits/remove_const.hpp>
-#include "mf_mem_fun_template.hpp"
+#include "mf/mf_mem_fun_template.hpp"
 #include "gen/mem_fun_template_gen.hpp"
 #include "detail/dmem_fun_template.hpp"
 
@@ -19,13 +21,17 @@
 /** \file
 */
 
-/// Expands to a metafunction which tests whether a member function template with a particular name exists.
+/// Expands to a metafunction which tests whether a member function template with a particular name and signature exists.
 /**
 
     trait = the name of the metafunction within the tti namespace.
     
     name = the name of the inner member.
     
+ tpseq = a Boost PP sequence which has the function template parameters.
+ Each part of the template parameters separated by a comma ( , )
+ is put in a separate sequence element.
+
     returns = a metafunction called "boost::tti::trait" where 'trait' is the macro parameter.<br />
     
               The metafunction types and return:
@@ -42,14 +48,14 @@
                           otherwise 'value' is false.
                           
 */
-#define BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(trait,name) \
+#define BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(trait,name,tpseq) \
 namespace boost \
   { \
   namespace tti \
     { \
     namespace detail \
       { \
- TTI_DETAIL_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_NIL) \
+ TTI_DETAIL_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_TUPLE_TO_LIST(BOOST_PP_SEQ_SIZE(tpseq),BOOST_PP_SEQ_TO_TUPLE(tpseq))) \
       } \
     template<class T,class R,class FS = boost::mpl::vector<>,class TAG = boost::function_types::null_tag> \
     struct trait : \
@@ -67,6 +73,10 @@
     
     name = the name of the inner member.
 
+ tpseq = a Boost PP sequence which has the function 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:
@@ -83,14 +93,14 @@
                           otherwise 'value' is false.
                           
 */
-#define BOOST_TTI_MTFC_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(trait,name) \
+#define BOOST_TTI_MTFC_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(trait,name,tpseq) \
 namespace boost \
   { \
   namespace tti \
     { \
     namespace detail \
       { \
- TTI_DETAIL_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_NIL) \
+ TTI_DETAIL_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_TUPLE_TO_LIST(BOOST_PP_SEQ_SIZE(tpseq),BOOST_PP_SEQ_TO_TUPLE(tpseq))) \
       } \
     struct trait \
       { \
@@ -104,11 +114,15 @@
   } \
 /**/
 
-/// Expands to a metafunction which tests whether a member function templaten with a particular name exists.
+/// Expands to a metafunction which tests whether a member function templaten with a particular name and signature exists.
 /**
 
     name = the name of the inner member.
     
+ tpseq = a Boost PP sequence which has the function template parameters.
+ Each part of the template parameters separated by a comma ( , )
+ is put in a separate sequence element.
+
     returns = a metafunction called "boost::tti::has_member_function_template_name" where 'name' is the macro parameter.
     
               The metafunction types and return:
@@ -125,19 +139,24 @@
                           otherwise 'value' is false.
                           
 */
-#define BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE(name) \
+#define BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE(name,tpseq) \
   BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE \
   ( \
   BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name), \
- name \
+ name, \
+ tpseq \
   ) \
 /**/
 
-/// Expands to a metafunction class which tests whether a member function template with a particular name exists.
+/// Expands to a metafunction class which tests whether a member function template with a particular name and signature exists.
 /**
 
     name = the name of the inner member.
 
+ tpseq = a Boost PP sequence which has the function 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_member_function_template_name" where 'name' is the macro parameter.
     
               The metafunction class's 'apply' metafunction types and return:
@@ -154,11 +173,12 @@
                           otherwise 'value' is false.
                           
 */
-#define BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION_TEMPLATE(name) \
+#define BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION_TEMPLATE(name,tpseq) \
   BOOST_TTI_MTFC_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE \
   ( \
   BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name), \
- name \
+ name, \
+ tpseq \
   ) \
 /**/
 

Deleted: sandbox/tti/boost/tti/mem_fun_template_params.hpp
==============================================================================
--- sandbox/tti/boost/tti/mem_fun_template_params.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
+++ (empty file)
@@ -1,186 +0,0 @@
-#if !defined(TTI_MEMBER_FUNCTION_TEMPLATE_PARAMS_HPP)
-#define TTI_MEMBER_FUNCTION_TEMPLATE_PARAMS_HPP
-
-#include <boost/config.hpp>
-#include <boost/function_types/property_tags.hpp>
-#include <boost/mpl/vector.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/seq/size.hpp>
-#include <boost/preprocessor/seq/to_tuple.hpp>
-#include <boost/preprocessor/tuple/to_list.hpp>
-#include <boost/type_traits/remove_const.hpp>
-#include "mf_mem_fun_template.hpp"
-#include "gen/mem_fun_template_params_gen.hpp"
-#include "detail/dmem_fun_template.hpp"
-
-/*
-
- The succeeding comments in this file are in doxygen format.
-
-*/
-
-/** \file
-*/
-
-/// Expands to a metafunction which tests whether a member function template with a particular name and signature exists.
-/**
-
- trait = the name of the metafunction within the tti namespace.
-
- name = the name of the inner member.
-
- tpseq = a Boost PP sequence which has the function template parameters.
- Each part of the template parameters separated by a comma ( , )
- is put in a separate sequence element.
-
- returns = a metafunction called "boost::tti::trait" where 'trait' is the macro parameter.<br />
-
- The metafunction types and return:
-
- T = the enclosing type in which to look for our 'name'.
-
- R = the return type of a valid instantiation of the member function template.
-
- FS = an optional parameter which are the parameters of a valid instantiation of the member function template, in the form of a boost::mpl forward sequence.
-
- TAG = an optional parameter which is a boost::function_types tag to apply to a valid instantiation of the member function template.
-
- returns = 'value' is true if the 'name' exists, with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS(trait,name,tpseq) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_TUPLE_TO_LIST(BOOST_PP_SEQ_SIZE(tpseq),BOOST_PP_SEQ_TO_TUPLE(tpseq))) \
- } \
- template<class T,class R,class FS = boost::mpl::vector<>,class TAG = boost::function_types::null_tag> \
- struct trait : \
- detail::trait<typename 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 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 member.
-
- tpseq = a Boost PP sequence which has the function 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'.
-
- R = the return type of a valid instantiation of the member function template.
-
- FS = an optional parameter which are the parameters of a valid instantiation of the member function template, in the form of a boost::mpl forward sequence.
-
- TAG = an optional parameter which is a boost::function_types tag to apply to a valid instantiation of the member function template.
-
- returns = 'value' is true if the 'name' exists, with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS(trait,name,tpseq) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_TUPLE_TO_LIST(BOOST_PP_SEQ_SIZE(tpseq),BOOST_PP_SEQ_TO_TUPLE(tpseq))) \
- } \
- struct trait \
- { \
- template<class T,class R,class FS = boost::mpl::vector<>,class TAG = boost::function_types::null_tag> \
- struct apply : \
- detail::trait<typename detail::ptmf_seq<T,R,FS,TAG>::type,typename boost::remove_const<T>::type> \
- { \
- }; \
- }; \
- } \
- } \
-/**/
-
-/// Expands to a metafunction which tests whether a member function templaten with a particular name and signature exists.
-/**
-
- name = the name of the inner member.
-
- tpseq = a Boost PP sequence which has the function template parameters.
- Each part of the template parameters separated by a comma ( , )
- is put in a separate sequence element.
-
- returns = a metafunction called "boost::tti::has_member_function_template_name" where 'name' is the macro parameter.
-
- The metafunction types and return:
-
- T = the enclosing type in which to look for our 'name'.
-
- R = the return type of a valid instantiation of the member function template.
-
- FS = an optional parameter which are the parameters of a valid instantiation of the member function template, in the form of a boost::mpl forward sequence.
-
- TAG = an optional parameter which is a boost::function_types tag to apply to a valid instantiation of the member function template.
-
- returns = 'value' is true if the 'name' exists, with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS(name,tpseq) \
- BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS \
- ( \
- BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS_GEN_BASE(name), \
- name, \
- tpseq \
- ) \
-/**/
-
-/// Expands to a metafunction class which tests whether a member function template with a particular name and signature exists.
-/**
-
- name = the name of the inner member.
-
- tpseq = a Boost PP sequence which has the function 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_member_function_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'.
-
- R = the return type of a valid instantiation of the member function template.
-
- FS = an optional parameter which are the parameters of a valid instantiation of the member function template, in the form of a boost::mpl forward sequence.
-
- TAG = an optional parameter which is a boost::function_types tag to apply to a valid instantiation of the member function template.
-
- returns = 'value' is true if the 'name' exists, with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS(name,tpseq) \
- BOOST_TTI_MTFC_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS \
- ( \
- BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS_GEN_BASE(name), \
- name, \
- tpseq \
- ) \
-/**/
-
-#endif // TTI_MEMBER_FUNCTION_TEMPLATE_PARAMS_HPP

Modified: sandbox/tti/boost/tti/mem_type.hpp
==============================================================================
--- sandbox/tti/boost/tti/mem_type.hpp (original)
+++ sandbox/tti/boost/tti/mem_type.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -1,14 +1,10 @@
 #if !defined(TTI_MEMBER_TYPE_HPP)
 #define TTI_MEMBER_TYPE_HPP
-
+
 #include <boost/config.hpp>
-#include <boost/mpl/apply.hpp>
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/identity.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/mpl/placeholders.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/type_traits/is_same.hpp>
+#include "mf/mf_mem_type.hpp"
 #include "gen/mem_type_gen.hpp"
 #include "detail/dmem_type.hpp"
 #include "detail/dnotype.hpp"
@@ -173,106 +169,4 @@
   ) \
 /**/
 
-namespace boost
- {
- namespace tti
- {
-
- /// A metafunction which checks whether the member 'type' returned from invoking the macro metafunction generated by TTI_MEMBER_TYPE ( TTI_TRAIT_MEMBER_TYPE ) or from invoking boost::tti::mf_member_type is a valid type.
- /**
-
- The metafunction types and return:
-
- T = returned inner 'type' from invoking the macro metafunction generated by TTI_MEMBER_TYPE ( TTI_TRAIT_MEMBER_TYPE ) or from invoking boost::tti::mf_member_type.
-
- returns = 'value' is true if the type is valid, otherwise 'value' is false.
-
- */
- template
- <
- class T
- >
- struct valid_member_type :
- boost::mpl::not_
- <
- boost::is_same
- <
- T,
- detail::notype
- >
- >
- {
- };
-
- /// A metafunction which checks whether the member 'type' returned from invoking the macro metafunction generated by TTI_MEMBER_TYPE ( TTI_TRAIT_MEMBER_TYPE ) or from invoking boost::tti::mf_member_type is a valid type.
- /**
-
- The metafunction types and return:
-
- T = the nullary metafunction from invoking the macro metafunction generated by TTI_MEMBER_TYPE ( TTI_TRAIT_MEMBER_TYPE ) or from invoking boost::tti::mf_member_type.
-
- returns = 'value' is true if the type is valid, otherwise 'value' is false.
-
- */
- template
- <
- class T
- >
- struct mf_valid_member_type :
- boost::mpl::not_
- <
- boost::is_same
- <
- typename T::type,
- detail::notype
- >
- >
- {
- };
-
- /// A metafunction whose typedef 'type' is either the internal type or an unspecified type.
- /**
-
- This metafunction takes its enclosing type as a nullary metafunction whose typedef 'type' member is the actual type used.
-
- The metafunction types and return:
-
- MemberType = a Boost MPL lambda expression using the metafunction generated from the TTI_MEMBER_TYPE ( or TTI_TRAIT_MEMBER_TYPE ) macro.<br />
- The easiest way to generate the lambda expression is to use a Boost MPL placeholder expression of the form 'metafunction\<_\>'.
- You can also use the metafunction class generated by the TTI_MTFC_MEMBER_TYPE ( or TTI_MTFC_TRAIT_MEMBER_TYPE ) macro.
-
- T = the enclosing type as a nullary metafunction.
-
- returns = 'type' is the inner type of the 'name' in TTI_MEMBER_TYPE ( or TTI_TRAIT_MEMBER_TYPE )
- if the inner type exists within the enclosing type,
- else 'type' is an unspecified type.
-
- The purpose of this metafunction is to encapsulate the 'name' type
- in TTI_MEMBER_TYPE ( or TTI_TRAIT_MEMBER_TYPE ) as the typedef 'type'
- of a metafunction, 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.
-
- Furthermore this metafunction allows the enclosing type to be return type from either the
- metafunction generated from TTI_MEMBER_TYPE ( or TTI_TRAIT_MEMBER_TYPE ) or from this
- metafunction itself.
-
- */
- template
- <
- class MemberType,
- class T
- >
- struct mf_member_type :
- boost::mpl::apply
- <
- MemberType,
- typename T::type
- >
- {
- };
-
- }
- }
-
 #endif // TTI_MEMBER_TYPE_HPP

Added: sandbox/tti/boost/tti/mf/mf_mem_data.hpp
==============================================================================
--- (empty file)
+++ sandbox/tti/boost/tti/mf/mf_mem_data.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -0,0 +1,60 @@
+#if !defined(TTI_MF_MEMBER_DATA_HPP)
+#define TTI_MF_MEMBER_DATA_HPP
+
+#include <boost/config.hpp>
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/placeholders.hpp>
+
+/*
+
+ The succeeding comments in this file are in doxygen format.
+
+*/
+
+/** \file
+*/
+
+namespace boost
+ {
+ namespace tti
+ {
+
+ /// A metafunction which checks whether a member data exists within an enclosing type.
+ /**
+
+ This metafunction takes its specific types as nullary metafunctions whose typedef 'type' member is the actual type used.
+
+ The metafunction types and return:
+
+ HasMemberData = a Boost MPL lambda expression using the metafunction generated from the TTI_HAS_MEMBER_DATA ( or TTI_TRAIT_HAS_MEMBER_DATA ) macro.<br />
+ The easiest way to generate the lambda expression is to use a Boost MPL placeholder expression of the form 'metafunction\<_,_\>'.
+ You can also use the metafunction class generated by the TTI_MTFC_HAS_MEMBER_DATA ( or TTI_MTFC_TRAIT_HAS_MEMBER_DATA ) macro.
+
+ T = the enclosing type as a nullary metafunction.
+
+ R = the type of the member data as a nullary metafunction.
+
+ returns = 'value' is true if the member data exists within the enclosing type,
+ otherwise 'value' is false.
+
+ */
+ template
+ <
+ class HasMemberData,
+ class T,
+ class R
+ >
+ struct mf_has_member_data :
+ boost::mpl::apply
+ <
+ HasMemberData,
+ typename T::type,
+ typename R::type
+ >::type
+ {
+ };
+ }
+ }
+
+#endif // TTI_MF_MEMBER_DATA_HPP

Added: sandbox/tti/boost/tti/mf/mf_mem_fun.hpp
==============================================================================
--- (empty file)
+++ sandbox/tti/boost/tti/mf/mf_mem_fun.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -0,0 +1,74 @@
+#if !defined(TTI_MF_MEMBER_FUNCTION_HPP)
+#define TTI_MF_MEMBER_FUNCTION_HPP
+
+#include <boost/config.hpp>
+#include <boost/function_types/property_tags.hpp>
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/placeholders.hpp>
+#include <boost/mpl/transform.hpp>
+#include <boost/mpl/vector.hpp>
+#include "../detail/dtself.hpp"
+
+/*
+
+ The succeeding comments in this file are in doxygen format.
+
+*/
+
+/** \file
+*/
+
+namespace boost
+ {
+ namespace tti
+ {
+
+ /// A metafunction which checks whether a member function exists within an enclosing type.
+ /**
+
+ This metafunction takes its specific types, except for the optional parameters, as nullary metafunctions whose typedef 'type' member is the actual type used.
+
+ The metafunction types and return:
+
+ HasMemberFunction = a Boost MPL lambda expression using the metafunction generated from the TTI_HAS_MEMBER_FUNCTION ( or TTI_TRAIT_HAS_MEMBER_FUNCTION ) macro.<br />
+ The easiest way to generate the lambda expression is to use a Boost MPL placeholder expression of the form 'metafunction\<_,_\> ( or optionally 'metafunction\<_,_,_\> or ' 'metafunction\<_,_,_,_\> )'.
+ You can also use the metafunction class generated by the TTI_MTFC_HAS_MEMBER_FUNCTION ( or TTI_MTFC_TRAIT_HAS_MEMBER_FUNCTION ) macro.
+
+ T = the enclosing type as a nullary metafunction.
+
+ R = the return type of the member function as a nullary metafunction.
+
+ FS = an optional parameter which is the parameters of the member function, each as a nullary metafunction, as a boost::mpl forward sequence.<br />
+ This parameter defaults to boost::mpl::vector<>.
+
+ TAG = an optional parameter which is a boost::function_types tag to apply to the member function.<br />
+ This parameter defaults to boost::function_types::null_tag.
+
+ returns = 'value' is true if the member function exists within the enclosing type,
+ otherwise 'value' is false.
+
+ */
+ template
+ <
+ class HasMemberFunction,
+ class T,
+ class R,
+ class FS = boost::mpl::vector<>,
+ class TAG = boost::function_types::null_tag
+ >
+ struct mf_has_member_function :
+ boost::mpl::apply
+ <
+ HasMemberFunction,
+ typename T::type,
+ typename R::type,
+ typename boost::mpl::transform<FS,detail::tself<boost::mpl::_1> >::type,
+ TAG
+ >::type
+ {
+ };
+ }
+ }
+
+#endif // TTI_MF_MEMBER_FUNCTION_HPP

Copied: sandbox/tti/boost/tti/mf/mf_mem_fun_template.hpp (from r69349, /sandbox/tti/boost/tti/mf_mem_fun_template.hpp)
==============================================================================
--- /sandbox/tti/boost/tti/mf_mem_fun_template.hpp (original)
+++ sandbox/tti/boost/tti/mf/mf_mem_fun_template.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -8,7 +8,7 @@
 #include <boost/mpl/placeholders.hpp>
 #include <boost/mpl/transform.hpp>
 #include <boost/mpl/vector.hpp>
-#include "detail/dtself.hpp"
+#include "../detail/dtself.hpp"
 
 /*
 

Added: sandbox/tti/boost/tti/mf/mf_mem_type.hpp
==============================================================================
--- (empty file)
+++ sandbox/tti/boost/tti/mf/mf_mem_type.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -0,0 +1,123 @@
+#if !defined(TTI_MF_MEMBER_TYPE_HPP)
+#define TTI_MF_MEMBER_TYPE_HPP
+
+#include <boost/config.hpp>
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/not.hpp>
+#include <boost/mpl/placeholders.hpp>
+#include <boost/type_traits/is_same.hpp>
+#include "../detail/dnotype.hpp"
+
+/*
+
+ The succeeding comments in this file are in doxygen format.
+
+*/
+
+/** \file
+*/
+
+namespace boost
+ {
+ namespace tti
+ {
+
+ /// A metafunction which checks whether the member 'type' returned from invoking the macro metafunction generated by TTI_MEMBER_TYPE ( TTI_TRAIT_MEMBER_TYPE ) or from invoking boost::tti::mf_member_type is a valid type.
+ /**
+
+ The metafunction types and return:
+
+ T = returned inner 'type' from invoking the macro metafunction generated by TTI_MEMBER_TYPE ( TTI_TRAIT_MEMBER_TYPE ) or from invoking boost::tti::mf_member_type.
+
+ returns = 'value' is true if the type is valid, otherwise 'value' is false.
+
+ */
+ template
+ <
+ class T
+ >
+ struct valid_member_type :
+ boost::mpl::not_
+ <
+ boost::is_same
+ <
+ T,
+ detail::notype
+ >
+ >
+ {
+ };
+
+ /// A metafunction which checks whether the member 'type' returned from invoking the macro metafunction generated by TTI_MEMBER_TYPE ( TTI_TRAIT_MEMBER_TYPE ) or from invoking boost::tti::mf_member_type is a valid type.
+ /**
+
+ The metafunction types and return:
+
+ T = the nullary metafunction from invoking the macro metafunction generated by TTI_MEMBER_TYPE ( TTI_TRAIT_MEMBER_TYPE ) or from invoking boost::tti::mf_member_type.
+
+ returns = 'value' is true if the type is valid, otherwise 'value' is false.
+
+ */
+ template
+ <
+ class T
+ >
+ struct mf_valid_member_type :
+ boost::mpl::not_
+ <
+ boost::is_same
+ <
+ typename T::type,
+ detail::notype
+ >
+ >
+ {
+ };
+
+ /// A metafunction whose typedef 'type' is either the internal type or an unspecified type.
+ /**
+
+ This metafunction takes its enclosing type as a nullary metafunction whose typedef 'type' member is the actual type used.
+
+ The metafunction types and return:
+
+ MemberType = a Boost MPL lambda expression using the metafunction generated from the TTI_MEMBER_TYPE ( or TTI_TRAIT_MEMBER_TYPE ) macro.<br />
+ The easiest way to generate the lambda expression is to use a Boost MPL placeholder expression of the form 'metafunction\<_\>'.
+ You can also use the metafunction class generated by the TTI_MTFC_MEMBER_TYPE ( or TTI_MTFC_TRAIT_MEMBER_TYPE ) macro.
+
+ T = the enclosing type as a nullary metafunction.
+
+ returns = 'type' is the inner type of the 'name' in TTI_MEMBER_TYPE ( or TTI_TRAIT_MEMBER_TYPE )
+ if the inner type exists within the enclosing type,
+ else 'type' is an unspecified type.
+
+ The purpose of this metafunction is to encapsulate the 'name' type
+ in TTI_MEMBER_TYPE ( or TTI_TRAIT_MEMBER_TYPE ) as the typedef 'type'
+ of a metafunction, 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.
+
+ Furthermore this metafunction allows the enclosing type to be return type from either the
+ metafunction generated from TTI_MEMBER_TYPE ( or TTI_TRAIT_MEMBER_TYPE ) or from this
+ metafunction itself.
+
+ */
+ template
+ <
+ class MemberType,
+ class T
+ >
+ struct mf_member_type :
+ boost::mpl::apply
+ <
+ MemberType,
+ typename T::type
+ >
+ {
+ };
+
+ }
+ }
+
+#endif // TTI_MF_MEMBER_TYPE_HPP

Added: sandbox/tti/boost/tti/mf/mf_static_mem_data.hpp
==============================================================================
--- (empty file)
+++ sandbox/tti/boost/tti/mf/mf_static_mem_data.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -0,0 +1,60 @@
+#if !defined(TTI_MF_STATIC_MEMBER_DATA_HPP)
+#define TTI_MF_STATIC_MEMBER_DATA_HPP
+
+#include <boost/config.hpp>
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/placeholders.hpp>
+
+/*
+
+ The succeeding comments in this file are in doxygen format.
+
+*/
+
+/** \file
+*/
+
+namespace boost
+ {
+ namespace tti
+ {
+
+ /// A metafunction which checks whether a static member data exists within an enclosing type.
+ /**
+
+ This metafunction takes its specific types as nullary metafunctions whose typedef 'type' member is the actual type used.
+
+ The metafunction types and return:
+
+ HasStaticMemberData = a Boost MPL lambda expression using the metafunction generated from the TTI_HAS_STATIC_MEMBER_DATA ( or TTI_TRAIT_HAS_STATIC_MEMBER_DATA ) macro.<br />
+ The easiest way to generate the lambda expression is to use a Boost MPL placeholder expression of the form 'metafunction\<_,_\>'.
+ You can also use the metafunction class generated by the TTI_MTFC_HAS_STATIC_MEMBER_DATA ( or TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_DATA ) macro.
+
+ T = the enclosing type as a nullary metafunction.
+
+ R = the type of the static member data as a nullary metafunction.
+
+ returns = 'value' is true if the member data exists within the enclosing type,
+ otherwise 'value' is false.
+
+ */
+ template
+ <
+ class HasStaticMemberData,
+ class T,
+ class R
+ >
+ struct mf_has_static_member_data :
+ boost::mpl::apply
+ <
+ HasStaticMemberData,
+ typename T::type,
+ typename R::type
+ >::type
+ {
+ };
+ }
+ }
+
+#endif // TTI_MF_STATIC_MEMBER_DATA_HPP

Added: sandbox/tti/boost/tti/mf/mf_static_mem_fun.hpp
==============================================================================
--- (empty file)
+++ sandbox/tti/boost/tti/mf/mf_static_mem_fun.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -0,0 +1,72 @@
+#if !defined(TTI_MF_STATIC_MEMBER_FUNCTION_HPP)
+#define TTI_MF_STATIC_MEMBER_FUNCTION_HPP
+
+#include <boost/config.hpp>
+#include <boost/function_types/property_tags.hpp>
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/placeholders.hpp>
+#include <boost/mpl/transform.hpp>
+#include <boost/mpl/vector.hpp>
+#include "../detail/dtself.hpp"
+
+/*
+
+ The succeeding comments in this file are in doxygen format.
+
+*/
+
+/** \file
+*/
+
+namespace boost
+ {
+ namespace tti
+ {
+
+ /// A metafunction which checks whether a static member function exists within an enclosing type.
+ /**
+
+ This metafunction takes its specific types, except for the optional parameters, as nullary metafunctions whose typedef 'type' member is the actual type used.
+
+ The metafunction types and return:
+
+ HasStaticMemberFunction = a Boost MPL lambda expression using the metafunction generated from the TTI_HAS_STATIC_MEMBER_FUNCTION ( or TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION ) macro.<br />
+ The easiest way to generate the lambda expression is to use a Boost MPL placeholder expression of the form 'metafunction\<_,_\> ( or optionally 'metafunction\<_,_,_\> or ' 'metafunction\<_,_,_,_\> )'.
+ You can also use the metafunction class generated by the TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION ( or TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_FUNCTION ) macro.
+
+ T = the enclosing type as a nullary metafunction.
+
+ R = the return type of the static member function as a nullary metafunction.
+
+ FS = an optional parameter which is the parameters of the static member function, each as a nullary metafunction, 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 member function exists within the enclosing type,
+ otherwise 'value' is false.
+
+ */
+ template
+ <
+ class HasStaticMemberFunction,
+ class T,
+ class R,
+ class FS = boost::mpl::vector<>,
+ class TAG = boost::function_types::null_tag
+ >
+ struct mf_has_static_member_function :
+ boost::mpl::apply
+ <
+ HasStaticMemberFunction,
+ typename T::type,
+ typename R::type,
+ typename boost::mpl::transform<FS,detail::tself<boost::mpl::_1> >::type,
+ TAG
+ >::type
+ {
+ };
+ }
+ }
+
+#endif // TTI_MF_STATIC_MEMBER_FUNCTION_HPP

Copied: sandbox/tti/boost/tti/mf/mf_static_mem_fun_template.hpp (from r69733, /sandbox/tti/boost/tti/mf_static_mem_fun_template.hpp)
==============================================================================
--- /sandbox/tti/boost/tti/mf_static_mem_fun_template.hpp (original)
+++ sandbox/tti/boost/tti/mf/mf_static_mem_fun_template.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -8,7 +8,7 @@
 #include <boost/mpl/placeholders.hpp>
 #include <boost/mpl/transform.hpp>
 #include <boost/mpl/vector.hpp>
-#include "detail/dtself.hpp"
+#include "../detail/dtself.hpp"
 
 /*
 

Added: sandbox/tti/boost/tti/mf/mf_template.hpp
==============================================================================
--- (empty file)
+++ sandbox/tti/boost/tti/mf/mf_template.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -0,0 +1,56 @@
+#if !defined(TTI_MF_TEMPLATE_HPP)
+#define TTI_MF_TEMPLATE_HPP
+
+#include <boost/config.hpp>
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/placeholders.hpp>
+
+/*
+
+ The succeeding comments in this file are in doxygen format.
+
+*/
+
+/** \file
+*/
+
+namespace boost
+ {
+ namespace tti
+ {
+
+ /// A metafunction which checks whether a class template exists within an enclosing type.
+ /**
+
+ This metafunction takes its enclosing type as nullary metafunctions whose typedef 'type' member is the actual type used.
+
+ The metafunction types and return:
+
+ HasTemplate = a Boost MPL lambda expression using the metafunction generated from the TTI_HAS_TEMPLATE ( TTI_TRAIT_HAS_TEMPLATE ) macro.<br />
+ The easiest way to generate the lambda expression is to use a Boost MPL placeholder expression of the form 'metafunction\<_\>'.
+ You can also use the metafunction class generated by the TTI_MTFC_HAS_TEMPLATE ( TTI_MTFC_TRAIT_HAS_TEMPLATE ) macro.
+
+ T = the enclosing type as a nullary metafunction.
+
+ returns = 'value' is true if the template exists within the enclosing type,
+ otherwise 'value' is false.
+
+ */
+ template
+ <
+ class HasTemplate,
+ class T
+ >
+ struct mf_has_template :
+ boost::mpl::apply
+ <
+ HasTemplate,
+ typename T::type
+ >::type
+ {
+ };
+ }
+ }
+
+#endif // TTI_MF_TEMPLATE_HPP

Added: sandbox/tti/boost/tti/mf/mf_type.hpp
==============================================================================
--- (empty file)
+++ sandbox/tti/boost/tti/mf/mf_type.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -0,0 +1,62 @@
+#if !defined(TTI_MF_TYPE_HPP)
+#define TTI_MF_TYPE_HPP
+
+#include <boost/config.hpp>
+#include <boost/mpl/apply.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/placeholders.hpp>
+#include "../detail/dnotype.hpp"
+
+/*
+
+ The succeeding comments in this file are in doxygen format.
+
+*/
+
+/** \file
+*/
+
+namespace boost
+ {
+ namespace tti
+ {
+
+ /// A metafunction which checks whether a type exists within an enclosing type and optionally is a particular type.
+ /**
+
+ This metafunction takes its specific types as nullary metafunctions whose typedef 'type' member is the actual type used.
+
+ The metafunction types and return:
+
+ HasType = a Boost MPL lambda expression using the metafunction generated from the TTI_HAS_TYPE ( or TTI_TRAIT_HAS_TYPE ) macro.<br />
+ The easiest way to generate the lambda expression is to use a Boost MPL placeholder expression of the form 'metafunction\<_\>' ( or optionally 'metafunction\<_,_\>' ).
+ You can also use the metafunction class generated by the TTI_MTFC_HAS_TYPE ( or TTI_MTFC_TRAIT_HAS_TYPE ) macro.
+
+ T = the enclosing type as a nullary metafunction.
+
+ U = the type of the inner type as a nullary metafunction, as an optional parameter.
+
+ returns = 'value' is true if the type exists within the enclosing type
+ and, if type U is specified, the type is the same as the type U,
+ otherwise 'value' is false.
+
+ */
+ template
+ <
+ class HasType,
+ class T,
+ class U = boost::mpl::identity<detail::notype>
+ >
+ struct mf_has_type :
+ boost::mpl::apply
+ <
+ HasType,
+ typename T::type,
+ typename U::type
+ >::type
+ {
+ };
+ }
+ }
+
+#endif // TTI_MF_TYPE_HPP

Deleted: sandbox/tti/boost/tti/mf_mem_fun_template.hpp
==============================================================================
--- sandbox/tti/boost/tti/mf_mem_fun_template.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
+++ (empty file)
@@ -1,74 +0,0 @@
-#if !defined(TTI_MF_MEMBER_FUNCTION_TEMPLATE_HPP)
-#define TTI_MF_MEMBER_FUNCTION_TEMPLATE_HPP
-
-#include <boost/config.hpp>
-#include <boost/function_types/property_tags.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/placeholders.hpp>
-#include <boost/mpl/transform.hpp>
-#include <boost/mpl/vector.hpp>
-#include "detail/dtself.hpp"
-
-/*
-
- The succeeding comments in this file are in doxygen format.
-
-*/
-
-/** \file
-*/
-
-namespace boost
- {
- namespace tti
- {
-
- /// A metafunction which checks whether a member function template exists within an enclosing type.
- /**
-
- This metafunction takes its specific types, except for the optional parameters, as nullary metafunctions whose typedef 'type' member is the actual type used.
-
- The metafunction types and return:
-
- HasMemberFunctionTemplate = a Boost MPL lambda expression using the metafunction generated from the TTI_HAS_MEMBER_FUNCTION_TEMPLATE ( or TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE ) macro.<br />
- The easiest way to generate the lambda expression is to use a Boost MPL placeholder expression of the form 'metafunction\<_,_\> ( or optionally 'metafunction\<_,_,_\> or ' 'metafunction\<_,_,_,_\> )'.
- You can also use the metafunction class generated by the TTI_MTFC_HAS_MEMBER_FUNCTION_TEMPLATE ( or TTI_MTFC_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE ) macro.
-
- T = the enclosing type as a nullary metafunction.
-
- R = the return type of the member function as a nullary metafunction.
-
- FS = an optional parameter which is the parameters of the member function, each as a nullary metafunction, as a boost::mpl forward sequence.<br />
- This parameter defaults to boost::mpl::vector<>.
-
- TAG = an optional parameter which is a boost::function_types tag to apply to the member function.<br />
- This parameter defaults to boost::function_types::null_tag.
-
- returns = 'value' is true if the member function exists within the enclosing type,
- otherwise 'value' is false.
-
- */
- template
- <
- class HasMemberFunctionTemplate,
- class T,
- class R,
- class FS = boost::mpl::vector<>,
- class TAG = boost::function_types::null_tag
- >
- struct mf_has_member_function_template :
- boost::mpl::apply
- <
- HasMemberFunctionTemplate,
- typename T::type,
- typename R::type,
- typename boost::mpl::transform<FS,detail::tself<boost::mpl::_1> >::type,
- TAG
- >::type
- {
- };
- }
- }
-
-#endif // TTI_MF_MEMBER_FUNCTION_TEMPLATE_HPP

Deleted: sandbox/tti/boost/tti/mf_static_mem_fun_template.hpp
==============================================================================
--- sandbox/tti/boost/tti/mf_static_mem_fun_template.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
+++ (empty file)
@@ -1,72 +0,0 @@
-#if !defined(TTI_MF_STATIC_MEM_FUN_TEMPLATE_HPP)
-#define TTI_MF_STATIC_MEM_FUN_TEMPLATE_HPP
-
-#include <boost/config.hpp>
-#include <boost/function_types/property_tags.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/placeholders.hpp>
-#include <boost/mpl/transform.hpp>
-#include <boost/mpl/vector.hpp>
-#include "detail/dtself.hpp"
-
-/*
-
- The succeeding comments in this file are in doxygen format.
-
-*/
-
-/** \file
-*/
-
-namespace boost
- {
- namespace tti
- {
-
- /// A metafunction which checks whether a static member function template exists within an enclosing type.
- /**
-
- This metafunction takes its specific types, except for the optional parameters, as nullary metafunctions whose typedef 'type' member is the actual type used.
-
- The metafunction types and return:
-
- HasStaticMemberFunctionTemplate = a Boost MPL lambda expression using the metafunction generated from the TTI_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE ( or TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE ) macro.<br />
- The easiest way to generate the lambda expression is to use a Boost MPL placeholder expression of the form 'metafunction\<_,_\> ( or optionally 'metafunction\<_,_,_\> or ' 'metafunction\<_,_,_,_\> )'.
- You can also use the metafunction class generated by the TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE ( or TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE ) macro.
-
- T = the enclosing type as a nullary metafunction.
-
- R = the return type of the static member function as a nullary metafunction.
-
- FS = an optional parameter which is the parameters of the static member function, each as a nullary metafunction, 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 member function exists within the enclosing type,
- otherwise 'value' is false.
-
- */
- template
- <
- class HasStaticMemberFunctionTemplate,
- class T,
- class R,
- class FS = boost::mpl::vector<>,
- class TAG = boost::function_types::null_tag
- >
- struct mf_has_static_member_function_template :
- boost::mpl::apply
- <
- HasStaticMemberFunctionTemplate,
- typename T::type,
- typename R::type,
- typename boost::mpl::transform<FS,detail::tself<boost::mpl::_1> >::type,
- TAG
- >::type
- {
- };
- }
- }
-
-#endif // TTI_MF_STATIC_MEM_FUN_TEMPLATE_HPP

Deleted: sandbox/tti/boost/tti/mf_template_params.hpp
==============================================================================
--- sandbox/tti/boost/tti/mf_template_params.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
+++ (empty file)
@@ -1,57 +0,0 @@
-#if !defined(TTI_MF_TEMPLATE_PARAMS_HPP)
-#define TTI_MF_TEMPLATE_PARAMS_HPP
-
-#include <boost/config.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/placeholders.hpp>
-
-/*
-
- The succeeding comments in this file are in doxygen format.
-
-*/
-
-/** \file
-*/
-
-namespace boost
- {
- namespace tti
- {
-
- /// A metafunction which checks whether a class template with its parameters exists within an enclosing type.
- /**
-
- This metafunction takes its enclosing type as nullary metafunctions whose typedef 'type' member is the actual type used.
-
- The metafunction types and return:
-
- HasTemplateCheckParams = a Boost MPL lambda expression using the metafunction generated from either the TTI_HAS_TEMPLATE_CHECK_PARAMS ( TTI_TRAIT_HAS_TEMPLATE_CHECK_PARAMS )
- or TTI_VM_HAS_TEMPLATE_CHECK_PARAMS ( TTI_VM_TRAIT_HAS_TEMPLATE_CHECK_PARAMS ) macros.<br />
- The easiest way to generate the lambda expression is to use a Boost MPL placeholder expression of the form 'metafunction\<_\>'.
- You can also use the metafunction class generated by either the TTI_MTFC_HAS_TEMPLATE_CHECK_PARAMS ( TTI_MTFC_TRAIT_HAS_TEMPLATE_CHECK_PARAMS ) macro or the TTI_VM_MTFC_HAS_TEMPLATE_CHECK_PARAMS ( TTI_VM_MTFC_TRAIT_HAS_TEMPLATE_CHECK_PARAMS ) macro.
-
- T = The enclosing type as a nullary metafunction.
-
- returns = 'value' is true if the template exists within the enclosing type,
- otherwise 'value' is false.
-
- */
- template
- <
- class HasTemplateCheckParams,
- class T
- >
- struct mf_has_template_check_params :
- boost::mpl::apply
- <
- HasTemplateCheckParams,
- typename T::type
- >::type
- {
- };
- }
- }
-
-#endif // TTI_MF_TEMPLATE_PARAMS_HPP

Modified: sandbox/tti/boost/tti/static_mem_data.hpp
==============================================================================
--- sandbox/tti/boost/tti/static_mem_data.hpp (original)
+++ sandbox/tti/boost/tti/static_mem_data.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -2,10 +2,7 @@
 #define TTI_STATIC_MEMBER_DATA_HPP
 
 #include <boost/config.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/placeholders.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"
 
@@ -158,46 +155,4 @@
   ) \
 /**/
 
-namespace boost
- {
- namespace tti
- {
-
- /// A metafunction which checks whether a static member data exists within an enclosing type.
- /**
-
- This metafunction takes its specific types as nullary metafunctions whose typedef 'type' member is the actual type used.
-
- The metafunction types and return:
-
- HasStaticMemberData = a Boost MPL lambda expression using the metafunction generated from the TTI_HAS_STATIC_MEMBER_DATA ( or TTI_TRAIT_HAS_STATIC_MEMBER_DATA ) macro.<br />
- The easiest way to generate the lambda expression is to use a Boost MPL placeholder expression of the form 'metafunction\<_,_\>'.
- You can also use the metafunction class generated by the TTI_MTFC_HAS_STATIC_MEMBER_DATA ( or TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_DATA ) macro.
-
- T = the enclosing type as a nullary metafunction.
-
- R = the type of the static member data as a nullary metafunction.
-
- returns = 'value' is true if the member data exists within the enclosing type,
- otherwise 'value' is false.
-
- */
- template
- <
- class HasStaticMemberData,
- class T,
- class R
- >
- struct mf_has_static_member_data :
- boost::mpl::apply
- <
- HasStaticMemberData,
- typename T::type,
- typename R::type
- >::type
- {
- };
- }
- }
-
 #endif // TTI_STATIC_MEMBER_DATA_HPP

Modified: sandbox/tti/boost/tti/static_mem_fun.hpp
==============================================================================
--- sandbox/tti/boost/tti/static_mem_fun.hpp (original)
+++ sandbox/tti/boost/tti/static_mem_fun.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -3,16 +3,11 @@
 
 #include <boost/config.hpp>
 #include <boost/function_types/property_tags.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/placeholders.hpp>
-#include <boost/mpl/transform.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"
 #include "detail/dtfunction.hpp"
-#include "detail/dtself.hpp"
 
 /*
 
@@ -166,54 +161,4 @@
   ) \
 /**/
 
-namespace boost
- {
- namespace tti
- {
-
- /// A metafunction which checks whether a static member function exists within an enclosing type.
- /**
-
- This metafunction takes its specific types, except for the optional parameters, as nullary metafunctions whose typedef 'type' member is the actual type used.
-
- The metafunction types and return:
-
- HasStaticMemberFunction = a Boost MPL lambda expression using the metafunction generated from the TTI_HAS_STATIC_MEMBER_FUNCTION ( or TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION ) macro.<br />
- The easiest way to generate the lambda expression is to use a Boost MPL placeholder expression of the form 'metafunction\<_,_\> ( or optionally 'metafunction\<_,_,_\> or ' 'metafunction\<_,_,_,_\> )'.
- You can also use the metafunction class generated by the TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION ( or TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_FUNCTION ) macro.
-
- T = the enclosing type as a nullary metafunction.
-
- R = the return type of the static member function as a nullary metafunction.
-
- FS = an optional parameter which is the parameters of the static member function, each as a nullary metafunction, 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 member function exists within the enclosing type,
- otherwise 'value' is false.
-
- */
- template
- <
- class HasStaticMemberFunction,
- class T,
- class R,
- class FS = boost::mpl::vector<>,
- class TAG = boost::function_types::null_tag
- >
- struct mf_has_static_member_function :
- boost::mpl::apply
- <
- HasStaticMemberFunction,
- typename T::type,
- typename R::type,
- typename boost::mpl::transform<FS,detail::tself<boost::mpl::_1> >::type,
- TAG
- >::type
- {
- };
- }
- }
-
 #endif // TTI_STATIC_MEMBER_FUNCTION_HPP

Modified: sandbox/tti/boost/tti/static_mem_fun_template.hpp
==============================================================================
--- sandbox/tti/boost/tti/static_mem_fun_template.hpp (original)
+++ sandbox/tti/boost/tti/static_mem_fun_template.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -4,8 +4,11 @@
 #include <boost/config.hpp>
 #include <boost/function_types/property_tags.hpp>
 #include <boost/mpl/vector.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include "mf_static_mem_fun_template.hpp"
+#include <boost/preprocessor/seq/size.hpp>
+#include <boost/preprocessor/seq/to_tuple.hpp>
+#include <boost/preprocessor/tuple/to_list.hpp>
+#include "mf/mf_static_mem_fun_template.hpp"
+#include "gen/static_mem_fun_template_gen.hpp"
 #include "detail/dstatic_mem_fun_template.hpp"
 #include "detail/dtfunction.hpp"
 
@@ -18,13 +21,17 @@
 /** \file
 */
 
-/// Expands to a metafunction which tests whether a static member function template with a particular name exists.
+/// Expands to a metafunction which tests whether a static member function template with a particular name and signature exists.
 /**
 
     trait = the name of the metafunction within the tti namespace.
     
     name = the name of the inner member.
 
+ tpseq = a Boost PP sequence which has the function template parameters.
+ Each part of the template parameters separated by a comma ( , )
+ is put in a separate sequence element.
+
     returns = a metafunction called "boost::tti::trait" where 'trait' is the macro parameter.<br />
     
               The metafunction types and return:
@@ -41,14 +48,14 @@
                           otherwise 'value' is false.
                           
 */
-#define BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(trait,name) \
+#define BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(trait,name,tpseq) \
 namespace boost \
   { \
   namespace tti \
     { \
     namespace detail \
       { \
- TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_NIL) \
+ TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_TUPLE_TO_LIST(BOOST_PP_SEQ_SIZE(tpseq),BOOST_PP_SEQ_TO_TUPLE(tpseq))) \
       } \
     template<class T,class R,class FS = boost::mpl::vector<>,class TAG = boost::function_types::null_tag> \
     struct trait : \
@@ -59,13 +66,17 @@
   } \
 /**/
 
-/// Expands to a metafunction class which tests whether a static member function template with a particular name exists.
+/// Expands to a metafunction class which tests whether a static member function 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 member.
 
+ tpseq = a Boost PP sequence which has the function 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.<br />
     
               The metafunction class's 'apply' metafunction types and return:
@@ -82,14 +93,14 @@
                           otherwise 'value' is false.
                           
 */
-#define BOOST_TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(trait,name) \
+#define BOOST_TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(trait,name,tpseq) \
 namespace boost \
   { \
   namespace tti \
     { \
     namespace detail \
       { \
- TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_NIL) \
+ TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_TUPLE_TO_LIST(BOOST_PP_SEQ_SIZE(tpseq),BOOST_PP_SEQ_TO_TUPLE(tpseq))) \
       } \
     struct trait \
       { \
@@ -103,11 +114,15 @@
   } \
 /**/
 
-/// Expands to a metafunction which tests whether a static member function template with a particular name exists.
+/// Expands to a metafunction which tests whether a static member function template with a particular name and signature exists.
 /**
 
     name = the name of the inner member.
 
+ tpseq = a Boost PP sequence which has the function template parameters.
+ Each part of the template parameters separated by a comma ( , )
+ is put in a separate sequence element.
+
     returns = a metafunction called "boost::tti::has_static_member_function_name" where 'name' is the macro parameter.
     
               The metafunction types and return:
@@ -124,19 +139,24 @@
                           otherwise 'value' is false.
                           
 */
-#define BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(name) \
+#define BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(name,tpseq) \
   BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE \
   ( \
- BOOST_PP_CAT(has_static_member_function_template_,name), \
- name \
+ BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name), \
+ name, \
+ tpseq \
   ) \
 /**/
 
-/// Expands to a metafunction class which tests whether a static member function template with a particular name exists.
+/// Expands to a metafunction class which tests whether a static member function template with a particular name and signature exists.
 /**
 
     name = the name of the inner member.
 
+ tpseq = a Boost PP sequence which has the function 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_static_member_function_name" where 'name' is the macro parameter.
     
               The metafunction class's 'apply' metafunction types and return:
@@ -153,11 +173,12 @@
                           otherwise 'value' is false.
                           
 */
-#define BOOST_TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(name) \
+#define BOOST_TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(name,tpseq) \
   BOOST_TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE \
   ( \
- BOOST_PP_CAT(mtfc_has_static_member_function_template_,name), \
- name \
+ BOOST_TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(name), \
+ name, \
+ tpseq \
   ) \
 /**/
 

Deleted: sandbox/tti/boost/tti/static_mem_fun_template_params.hpp
==============================================================================
--- sandbox/tti/boost/tti/static_mem_fun_template_params.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
+++ (empty file)
@@ -1,185 +0,0 @@
-#if !defined(TTI_STATIC_MEM_FUN_TEMPLATE_PARAMS_HPP)
-#define TTI_STATIC_MEM_FUN_TEMPLATE_PARAMS_HPP
-
-#include <boost/config.hpp>
-#include <boost/function_types/property_tags.hpp>
-#include <boost/mpl/vector.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/seq/size.hpp>
-#include <boost/preprocessor/seq/to_tuple.hpp>
-#include <boost/preprocessor/tuple/to_list.hpp>
-#include "mf_static_mem_fun_template.hpp"
-#include "detail/dstatic_mem_fun_template.hpp"
-#include "detail/dtfunction.hpp"
-
-/*
-
- The succeeding comments in this file are in doxygen format.
-
-*/
-
-/** \file
-*/
-
-/// Expands to a metafunction which tests whether a static member function template with a particular name and signature exists.
-/**
-
- trait = the name of the metafunction within the tti namespace.
-
- name = the name of the inner member.
-
- tpseq = a Boost PP sequence which has the function template parameters.
- Each part of the template parameters separated by a comma ( , )
- is put in a separate sequence element.
-
- returns = a metafunction called "boost::tti::trait" where 'trait' is the macro parameter.<br />
-
- The 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_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_PARAMS(trait,name,tpseq) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_TUPLE_TO_LIST(BOOST_PP_SEQ_SIZE(tpseq),BOOST_PP_SEQ_TO_TUPLE(tpseq))) \
- } \
- template<class T,class R,class FS = boost::mpl::vector<>,class TAG = boost::function_types::null_tag> \
- struct trait : \
- detail::trait<T,typename detail::tfunction_seq<R,FS,TAG>::type> \
- { \
- }; \
- } \
- } \
-/**/
-
-/// Expands to a metafunction class which tests whether a static member function 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 member.
-
- tpseq = a Boost PP sequence which has the function 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.<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_TEMPLATE_PARAMS(trait,name,tpseq) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(trait,name,BOOST_PP_TUPLE_TO_LIST(BOOST_PP_SEQ_SIZE(tpseq),BOOST_PP_SEQ_TO_TUPLE(tpseq))) \
- } \
- struct trait \
- { \
- template<class T,class R,class FS = boost::mpl::vector<>,class TAG = boost::function_types::null_tag> \
- struct apply : \
- detail::trait<T,typename detail::tfunction_seq<R,FS,TAG>::type> \
- { \
- }; \
- }; \
- } \
- } \
-/**/
-
-/// Expands to a metafunction which tests whether a static member function template with a particular name and signature exists.
-/**
-
- name = the name of the inner member.
-
- tpseq = a Boost PP sequence which has the function template parameters.
- Each part of the template parameters separated by a comma ( , )
- is put in a separate sequence element.
-
- returns = a metafunction called "boost::tti::has_static_member_function_name" where 'name' is the macro parameter.
-
- The 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_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_PARAMS(name,tpseq) \
- BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_PARAMS \
- ( \
- BOOST_PP_CAT(has_static_member_function_template_,name), \
- name, \
- tpseq \
- ) \
-/**/
-
-/// Expands to a metafunction class which tests whether a static member function template with a particular name and signature exists.
-/**
-
- name = the name of the inner member.
-
- tpseq = a Boost PP sequence which has the function 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_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_TEMPLATE_PARAMS(name,tpseq) \
- BOOST_TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_PARAMS \
- ( \
- BOOST_PP_CAT(mtfc_has_static_member_function_template_,name), \
- name, \
- tpseq \
- ) \
-/**/
-
-#endif // TTI_STATIC_MEM_FUN_TEMPLATE_PARAMS_HPP

Modified: sandbox/tti/boost/tti/template.hpp
==============================================================================
--- sandbox/tti/boost/tti/template.hpp (original)
+++ sandbox/tti/boost/tti/template.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -3,10 +3,7 @@
 
 #include <boost/config.hpp>
 #include <boost/mpl/has_xxx.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/placeholders.hpp>
-#include <boost/preprocessor/cat.hpp>
+#include "mf/mf_template.hpp"
 #include "gen/template_gen.hpp"
 
 /*
@@ -145,42 +142,4 @@
   ) \
 /**/
 
-namespace boost
- {
- namespace tti
- {
-
- /// A metafunction which checks whether a class template exists within an enclosing type.
- /**
-
- This metafunction takes its enclosing type as nullary metafunctions whose typedef 'type' member is the actual type used.
-
- The metafunction types and return:
-
- HasTemplate = a Boost MPL lambda expression using the metafunction generated from the TTI_HAS_TEMPLATE ( TTI_TRAIT_HAS_TEMPLATE ) macro.<br />
- The easiest way to generate the lambda expression is to use a Boost MPL placeholder expression of the form 'metafunction\<_\>'.
- You can also use the metafunction class generated by the TTI_MTFC_HAS_TEMPLATE ( TTI_MTFC_TRAIT_HAS_TEMPLATE ) macro.
-
- T = the enclosing type as a nullary metafunction.
-
- returns = 'value' is true if the template exists within the enclosing type,
- otherwise 'value' is false.
-
- */
- template
- <
- class HasTemplate,
- class T
- >
- struct mf_has_template :
- boost::mpl::apply
- <
- HasTemplate,
- typename T::type
- >::type
- {
- };
- }
- }
-
 #endif // TTI_TEMPLATE_HPP

Modified: sandbox/tti/boost/tti/template_params.hpp
==============================================================================
--- sandbox/tti/boost/tti/template_params.hpp (original)
+++ sandbox/tti/boost/tti/template_params.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -2,10 +2,7 @@
 #define TTI_TEMPLATE_PARAMS_HPP
 
 #include <boost/config.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include "mf_template_params.hpp"
+#include "mf/mf_template_params.hpp"
 #include "gen/template_params_gen.hpp"
 #include "detail/dtemplate_params.hpp"
 

Modified: sandbox/tti/boost/tti/tti.hpp
==============================================================================
--- sandbox/tti/boost/tti/tti.hpp (original)
+++ sandbox/tti/boost/tti/tti.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -3,19 +3,15 @@
 
 #include "comp_mem_fun.hpp"
 #include "comp_mem_fun_template.hpp"
-#include "comp_mem_fun_template_params.hpp"
 #include "comp_static_mem_fun.hpp"
 #include "comp_static_mem_fun_template.hpp"
-#include "comp_static_mem_fun_template_params.hpp"
 #include "mem_data.hpp"
 #include "mem_fun.hpp"
 #include "mem_fun_template.hpp"
-#include "mem_fun_template_params.hpp"
 #include "mem_type.hpp"
 #include "static_mem_data.hpp"
 #include "static_mem_fun.hpp"
 #include "static_mem_fun_template.hpp"
-#include "static_mem_fun_template_params.hpp"
 #include "template.hpp"
 #include "template_params.hpp"
 #include "type.hpp"

Modified: sandbox/tti/boost/tti/type.hpp
==============================================================================
--- sandbox/tti/boost/tti/type.hpp (original)
+++ sandbox/tti/boost/tti/type.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -2,10 +2,7 @@
 #define TTI_TYPE_HPP
 
 #include <boost/config.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/placeholders.hpp>
-#include <boost/preprocessor/cat.hpp>
+#include "mf/mf_type.hpp"
 #include "gen/type_gen.hpp"
 #include "detail/dtype.hpp"
 #include "detail/dnotype.hpp"
@@ -129,7 +126,7 @@
 #define BOOST_TTI_HAS_TYPE(name) \
   BOOST_TTI_TRAIT_HAS_TYPE \
   ( \
- BOOST_PP_CAT(has_type_,name), \
+ BOOST_TTI_HAS_TYPE_GEN_BASE(name), \
   name \
   ) \
 /**/
@@ -155,52 +152,9 @@
 #define BOOST_TTI_MTFC_HAS_TYPE(name) \
   BOOST_TTI_MTFC_TRAIT_HAS_TYPE \
   ( \
- BOOST_PP_CAT(mtfc_has_type_,name), \
+ BOOST_TTI_MTFC_HAS_TYPE_GEN_BASE(name), \
   name \
   ) \
 /**/
 
-namespace boost
- {
- namespace tti
- {
-
- /// A metafunction which checks whether a type exists within an enclosing type and optionally is a particular type.
- /**
-
- This metafunction takes its specific types as nullary metafunctions whose typedef 'type' member is the actual type used.
-
- The metafunction types and return:
-
- HasType = a Boost MPL lambda expression using the metafunction generated from the TTI_HAS_TYPE ( or TTI_TRAIT_HAS_TYPE ) macro.<br />
- The easiest way to generate the lambda expression is to use a Boost MPL placeholder expression of the form 'metafunction\<_\>' ( or optionally 'metafunction\<_,_\>' ).
- You can also use the metafunction class generated by the TTI_MTFC_HAS_TYPE ( or TTI_MTFC_TRAIT_HAS_TYPE ) macro.
-
- T = the enclosing type as a nullary metafunction.
-
- U = the type of the inner type as a nullary metafunction, as an optional parameter.
-
- returns = 'value' is true if the type exists within the enclosing type
- and, if type U is specified, the type is the same as the type U,
- otherwise 'value' is false.
-
- */
- template
- <
- class HasType,
- class T,
- class U = boost::mpl::identity<detail::notype>
- >
- struct mf_has_type :
- boost::mpl::apply
- <
- HasType,
- typename T::type,
- typename U::type
- >::type
- {
- };
- }
- }
-
 #endif // TTI_TYPE_HPP

Modified: sandbox/tti/boost/tti/vm_comp_mem_fun_template.hpp
==============================================================================
--- sandbox/tti/boost/tti/vm_comp_mem_fun_template.hpp (original)
+++ sandbox/tti/boost/tti/vm_comp_mem_fun_template.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -7,11 +7,11 @@
 
 #include <boost/mpl/apply.hpp>
 #include <boost/mpl/identity.hpp>
-#include <boost/preprocessor/cat.hpp>
 #include <boost/preprocessor/comparison/equal.hpp>
 #include <boost/preprocessor/control/iif.hpp>
 #include <boost/preprocessor/list/adt.hpp>
 #include <boost/variadic_macro_data/vmd.hpp>
+#include "gen/vm_comp_mem_fun_template_gen.hpp"
 #include "detail/dcomp_mem_fun_template.hpp"
 
 /*
@@ -151,7 +151,7 @@
 #define BOOST_TTI_VM_HAS_COMP_MEMBER_FUNCTION_TEMPLATE(...) \
   BOOST_TTI_VM_TRAIT_HAS_COMP_MEMBER_FUNCTION_TEMPLATE \
   ( \
- BOOST_PP_CAT(has_comp_member_function_template_,BOOST_VMD_DATA_ELEM(0,__VA_ARGS__)), \
+ BOOST_TTI_VM_HAS_COMP_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(BOOST_VMD_DATA_ELEM(0,__VA_ARGS__)), \
   __VA_ARGS__ \
   ) \
 /**/
@@ -175,7 +175,7 @@
 #define BOOST_TTI_VM_MTFC_HAS_COMP_MEMBER_FUNCTION_TEMPLATE(...) \
   BOOST_TTI_VM_MTFC_TRAIT_HAS_COMP_MEMBER_FUNCTION_TEMPLATE \
   ( \
- BOOST_PP_CAT(mtfc_has_comp_member_function_template_,BOOST_VMD_DATA_ELEM(0,__VA_ARGS__)), \
+ BOOST_TTI_VM_MTFC_HAS_COMP_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(BOOST_VMD_DATA_ELEM(0,__VA_ARGS__)), \
   __VA_ARGS__ \
   ) \
 /**/

Modified: sandbox/tti/boost/tti/vm_comp_static_mem_fun_template.hpp
==============================================================================
--- sandbox/tti/boost/tti/vm_comp_static_mem_fun_template.hpp (original)
+++ sandbox/tti/boost/tti/vm_comp_static_mem_fun_template.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -7,11 +7,11 @@
 
 #include <boost/mpl/apply.hpp>
 #include <boost/mpl/identity.hpp>
-#include <boost/preprocessor/cat.hpp>
 #include <boost/preprocessor/comparison/equal.hpp>
 #include <boost/preprocessor/control/iif.hpp>
 #include <boost/preprocessor/list/adt.hpp>
 #include <boost/variadic_macro_data/vmd.hpp>
+#include "gen/vm_comp_static_mem_fun_template_gen.hpp"
 #include "detail/dcomp_static_mem_fun_template.hpp"
 
 /*
@@ -164,7 +164,7 @@
 #define BOOST_TTI_VM_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE(...) \
   BOOST_TTI_VM_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE \
   ( \
- BOOST_PP_CAT(has_comp_static_member_function_template_,BOOST_VMD_DATA_ELEM(0,__VA_ARGS__)), \
+ BOOST_TTI_VM_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(BOOST_VMD_DATA_ELEM(0,__VA_ARGS__)), \
   __VA_ARGS__ \
   ) \
 /**/
@@ -192,7 +192,7 @@
 #define BOOST_TTI_VM_MTFC_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE(...) \
   BOOST_TTI_VM_MTFC_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE \
   ( \
- BOOST_PP_CAT(mtfc_has_comp_static_member_function_template_,BOOST_VMD_DATA_ELEM(0,__VA_ARGS__)), \
+ BOOST_TTI_VM_MTFC_HAS_COMP_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(BOOST_VMD_DATA_ELEM(0,__VA_ARGS__)), \
   __VA_ARGS__ \
   ) \
 /**/

Modified: sandbox/tti/boost/tti/vm_mem_fun_template.hpp
==============================================================================
--- sandbox/tti/boost/tti/vm_mem_fun_template.hpp (original)
+++ sandbox/tti/boost/tti/vm_mem_fun_template.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -7,13 +7,13 @@
 
 #include <boost/function_types/property_tags.hpp>
 #include <boost/mpl/vector.hpp>
-#include <boost/preprocessor/cat.hpp>
 #include <boost/preprocessor/comparison/equal.hpp>
 #include <boost/preprocessor/control/iif.hpp>
 #include <boost/preprocessor/list/adt.hpp>
 #include <boost/type_traits/remove_const.hpp>
 #include <boost/variadic_macro_data/vmd.hpp>
-#include "mf_mem_fun_template.hpp"
+#include "mf/mf_mem_fun_template.hpp"
+#include "gen/vm_mem_fun_template_gen.hpp"
 #include "detail/dmem_fun_template.hpp"
 
 /*
@@ -168,7 +168,7 @@
 #define BOOST_TTI_VM_HAS_MEMBER_FUNCTION_TEMPLATE(...) \
   BOOST_TTI_VM_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE \
   ( \
- BOOST_PP_CAT(has_member_function_template_,BOOST_VMD_DATA_ELEM(0,__VA_ARGS__)), \
+ BOOST_TTI_VM_HAS_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(BOOST_VMD_DATA_ELEM(0,__VA_ARGS__)), \
   __VA_ARGS__ \
   ) \
 /**/
@@ -197,7 +197,7 @@
 #define BOOST_TTI_VM_MTFC_HAS_MEMBER_FUNCTION_TEMPLATE(...) \
   BOOST_TTI_VM_MTFC_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE \
   ( \
- BOOST_PP_CAT(mtfc_has_member_function_template_,BOOST_VMD_DATA_ELEM(0,__VA_ARGS__)), \
+ BOOST_TTI_VM_MTFC_HAS_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(BOOST_VMD_DATA_ELEM(0,__VA_ARGS__)), \
   __VA_ARGS__ \
   ) \
 /**/

Modified: sandbox/tti/boost/tti/vm_static_mem_fun_template.hpp
==============================================================================
--- sandbox/tti/boost/tti/vm_static_mem_fun_template.hpp (original)
+++ sandbox/tti/boost/tti/vm_static_mem_fun_template.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -7,12 +7,12 @@
 
 #include <boost/function_types/property_tags.hpp>
 #include <boost/mpl/vector.hpp>
-#include <boost/preprocessor/cat.hpp>
 #include <boost/preprocessor/comparison/equal.hpp>
 #include <boost/preprocessor/control/iif.hpp>
 #include <boost/preprocessor/list/adt.hpp>
 #include <boost/variadic_macro_data/vmd.hpp>
-#include "mf_static_mem_fun_template.hpp"
+#include "mf/mf_static_mem_fun_template.hpp"
+#include "gen/vm_static_mem_fun_template_gen.hpp"
 #include "detail/dstatic_mem_fun_template.hpp"
 #include "detail/dtfunction.hpp"
 
@@ -168,7 +168,7 @@
 #define BOOST_TTI_VM_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(...) \
   BOOST_TTI_VM_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE \
   ( \
- BOOST_PP_CAT(has_static_member_function_template_,BOOST_VMD_DATA_ELEM(0,__VA_ARGS__)), \
+ BOOST_TTI_VM_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(BOOST_VMD_DATA_ELEM(0,__VA_ARGS__)), \
   __VA_ARGS__ \
   ) \
 /**/
@@ -197,7 +197,7 @@
 #define BOOST_TTI_VM_MTFC_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(...) \
   BOOST_TTI_VM_MTFC_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE \
   ( \
- BOOST_PP_CAT(mtfc_has_static_member_function_template_,BOOST_VMD_DATA_ELEM(0,__VA_ARGS__)), \
+ BOOST_TTI_VM_MTFC_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_GEN_BASE(BOOST_VMD_DATA_ELEM(0,__VA_ARGS__)), \
   __VA_ARGS__ \
   ) \
 /**/

Modified: sandbox/tti/boost/tti/vm_template_params.hpp
==============================================================================
--- sandbox/tti/boost/tti/vm_template_params.hpp (original)
+++ sandbox/tti/boost/tti/vm_template_params.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -5,8 +5,7 @@
 
 #if !defined(BOOST_NO_VARIADIC_MACROS)
 
-#include <boost/preprocessor/cat.hpp>
-#include "mf_template_params.hpp"
+#include "mf/mf_template_params.hpp"
 #include "gen/vm_template_params_gen.hpp"
 #include "detail/dvm_template_params.hpp"
 

Modified: sandbox/tti/libs/tti/doc/Jamfile.v2
==============================================================================
--- sandbox/tti/libs/tti/doc/Jamfile.v2 (original)
+++ sandbox/tti/libs/tti/doc/Jamfile.v2 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -37,22 +37,18 @@
   :
     $(here)/../../../boost/tti/comp_mem_fun.hpp
     $(here)/../../../boost/tti/comp_mem_fun_template.hpp
- $(here)/../../../boost/tti/comp_mem_fun_template_params.hpp
     $(here)/../../../boost/tti/comp_static_mem_fun.hpp
     $(here)/../../../boost/tti/comp_static_mem_fun_template.hpp
- $(here)/../../../boost/tti/comp_static_mem_fun_template_params.hpp
     $(here)/../../../boost/tti/mem_data.hpp
     $(here)/../../../boost/tti/mem_fun.hpp
     $(here)/../../../boost/tti/mem_fun_template.hpp
- $(here)/../../../boost/tti/mem_fun_template_params.hpp
     $(here)/../../../boost/tti/mem_type.hpp
- $(here)/../../../boost/tti/mf_mem_fun_template.hpp
- $(here)/../../../boost/tti/mf_static_mem_fun_template.hpp
- $(here)/../../../boost/tti/mf_template_params.hpp
+ $(here)/../../../boost/tti/mf/mf_mem_fun_template.hpp
+ $(here)/../../../boost/tti/mf/mf_static_mem_fun_template.hpp
+ $(here)/../../../boost/tti/mf/mf_template_params.hpp
     $(here)/../../../boost/tti/static_mem_data.hpp
     $(here)/../../../boost/tti/static_mem_fun.hpp
     $(here)/../../../boost/tti/static_mem_fun_template.hpp
- $(here)/../../../boost/tti/static_mem_fun_template_params.hpp
     $(here)/../../../boost/tti/template.hpp
     $(here)/../../../boost/tti/template_params.hpp
     $(here)/../../../boost/tti/type.hpp

Modified: sandbox/tti/libs/tti/doc/index.idx
==============================================================================
--- sandbox/tti/libs/tti/doc/index.idx (original)
+++ sandbox/tti/libs/tti/doc/index.idx 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -1,21 +1,17 @@
 !scan boost/tti/comp_mem_fun.hpp
 !scan boost/tti/comp_mem_fun_template.hpp
-!scan boost/tti/comp_mem_fun_template_params.hpp
 !scan boost/tti/comp_static_mem_fun.hpp
 !scan boost/tti/comp_static_mem_fun_template.hpp
-!scan boost/tti/comp_static_mem_fun_template_params.hpp
 !scan boost/tti/mem_data.hpp
 !scan boost/tti/mem_fun.hpp
 !scan boost/tti/mem_fun_template.hpp
-!scan boost/tti/mem_fun_template_params.hpp
 !scan boost/tti/mem_type.hpp
-!scan boost/tti/mf_mem_fun_template.hpp
-!scan boost/tti/mf_static_mem_fun_template.hpp
-!scan boost/tti/mf_template_params.hpp
+!scan boost/tti/mf/mf_mem_fun_template.hpp
+!scan boost/tti/mf/mf_static_mem_fun_template.hpp
+!scan boost/tti/mf/mf_template_params.hpp
 !scan boost/tti/static_mem_data.hpp
 !scan boost/tti/static_mem_fun.hpp
 !scan boost/tti/static_mem_fun_template.hpp
-!scan boost/tti/static_mem_fun_template_params.hpp
 !scan boost/tti/template.hpp
 !scan boost/tti/template_params.hpp
 !scan boost/tti/type.hpp

Modified: sandbox/tti/libs/tti/test/test_has_mem_fun_template.hpp
==============================================================================
--- sandbox/tti/libs/tti/test/test_has_mem_fun_template.hpp (original)
+++ sandbox/tti/libs/tti/test/test_has_mem_fun_template.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -3,18 +3,17 @@
 
 #include "test_structs.hpp"
 #include <boost/tti/mem_fun_template.hpp>
-#include <boost/tti/mem_fun_template_params.hpp>
 #include <boost/tti/mem_type.hpp>
 
-BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS(SomeFuncTemplate,(int)(long)(double)(50))
-BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS(SameName,AFuncTemplate,(int)(int)(float))
-BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS(AFuncTemplate,(long)(9983))
-BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS(AnotherName,MyFuncTemplate,(bool))
+BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE(SomeFuncTemplate,(int)(long)(double)(50))
+BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(SameName,AFuncTemplate,(int)(int)(float))
+BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE(AFuncTemplate,(long)(9983))
+BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(AnotherName,MyFuncTemplate,(bool))
 
-BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(SomeFuncName,SomeFuncTemplate)
-BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(AnotherNameFT,AFuncTemplate)
-BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(OneFT,AFuncTemplate)
-BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE(MyFuncTemplate)
+BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(SomeFuncName,SomeFuncTemplate,BOOST_PP_NIL)
+BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(AnotherNameFT,AFuncTemplate,BOOST_PP_NIL)
+BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(OneFT,AFuncTemplate,BOOST_PP_NIL)
+BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE(MyFuncTemplate,BOOST_PP_NIL)
 
 BOOST_TTI_MEMBER_TYPE(BType)
 BOOST_TTI_MEMBER_TYPE(CType)

Modified: sandbox/tti/libs/tti/test/test_has_static_mem_fun_template.hpp
==============================================================================
--- sandbox/tti/libs/tti/test/test_has_static_mem_fun_template.hpp (original)
+++ sandbox/tti/libs/tti/test/test_has_static_mem_fun_template.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -3,16 +3,15 @@
 
 #include "test_structs.hpp"
 #include <boost/tti/static_mem_fun_template.hpp>
-#include <boost/tti/static_mem_fun_template_params.hpp>
 #include <boost/tti/mem_type.hpp>
 
-BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_PARAMS(StatFuncTemplate,(short)(long)(7854))
-BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_PARAMS(TAnother,AnotherFuncTemplate,(int)(long)(long))
-BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_PARAMS(YetAnotherFuncTemplate,(double)(float))
+BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(StatFuncTemplate,(short)(long)(7854))
+BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(TAnother,AnotherFuncTemplate,(int)(long)(long))
+BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(YetAnotherFuncTemplate,(double)(float))
 
-BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(AStatFT,StatFuncTemplate)
-BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(AnotherFuncTemplate)
-BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(YAFuncTemp,YetAnotherFuncTemplate)
+BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(AStatFT,StatFuncTemplate,BOOST_PP_NIL)
+BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(AnotherFuncTemplate,BOOST_PP_NIL)
+BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(YAFuncTemp,YetAnotherFuncTemplate,BOOST_PP_NIL)
 
 BOOST_TTI_MEMBER_TYPE(AStructType)
 

Modified: sandbox/tti/libs/tti/test/test_mf_has_mem_fun_template.hpp
==============================================================================
--- sandbox/tti/libs/tti/test/test_mf_has_mem_fun_template.hpp (original)
+++ sandbox/tti/libs/tti/test/test_mf_has_mem_fun_template.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -3,28 +3,27 @@
 
 #include "test_structs.hpp"
 #include <boost/tti/mem_fun_template.hpp>
-#include <boost/tti/mem_fun_template_params.hpp>
 #include <boost/tti/mem_type.hpp>
 
-BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS(SomeFuncTemplate,(int)(long)(double)(50))
-BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS(SameName,AFuncTemplate,(int)(int)(float))
-BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS(AFuncTemplate,(long)(9983))
-BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS(AnotherName,MyFuncTemplate,(bool))
-
-BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(SomeFuncName,SomeFuncTemplate)
-BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(AnotherNameFT,AFuncTemplate)
-BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(OneFT,AFuncTemplate)
-BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE(MyFuncTemplate)
-
-BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS(SomeFuncTemplate,(int)(long)(double)(50))
-BOOST_TTI_MTFC_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS(MTSameName,AFuncTemplate,(int)(int)(float))
-BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS(AFuncTemplate,(long)(9983))
-BOOST_TTI_MTFC_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE_PARAMS(SpecAnotherName,MyFuncTemplate,(bool))
-
-BOOST_TTI_MTFC_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(TheMTFuncName,SomeFuncTemplate)
-BOOST_TTI_MTFC_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(MTAnotherNameFT,AFuncTemplate)
-BOOST_TTI_MTFC_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(FTOneMT,AFuncTemplate)
-BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION_TEMPLATE(MyFuncTemplate)
+BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE(SomeFuncTemplate,(int)(long)(double)(50))
+BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(SameName,AFuncTemplate,(int)(int)(float))
+BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE(AFuncTemplate,(long)(9983))
+BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(AnotherName,MyFuncTemplate,(bool))
+
+BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(SomeFuncName,SomeFuncTemplate,BOOST_PP_NIL)
+BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(AnotherNameFT,AFuncTemplate,BOOST_PP_NIL)
+BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(OneFT,AFuncTemplate,BOOST_PP_NIL)
+BOOST_TTI_HAS_MEMBER_FUNCTION_TEMPLATE(MyFuncTemplate,BOOST_PP_NIL)
+
+BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION_TEMPLATE(SomeFuncTemplate,(int)(long)(double)(50))
+BOOST_TTI_MTFC_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(MTSameName,AFuncTemplate,(int)(int)(float))
+BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION_TEMPLATE(AFuncTemplate,(long)(9983))
+BOOST_TTI_MTFC_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(SpecAnotherName,MyFuncTemplate,(bool))
+
+BOOST_TTI_MTFC_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(TheMTFuncName,SomeFuncTemplate,BOOST_PP_NIL)
+BOOST_TTI_MTFC_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(MTAnotherNameFT,AFuncTemplate,BOOST_PP_NIL)
+BOOST_TTI_MTFC_TRAIT_HAS_MEMBER_FUNCTION_TEMPLATE(FTOneMT,AFuncTemplate,BOOST_PP_NIL)
+BOOST_TTI_MTFC_HAS_MEMBER_FUNCTION_TEMPLATE(MyFuncTemplate,BOOST_PP_NIL)
 
 BOOST_TTI_MEMBER_TYPE(BType)
 BOOST_TTI_MEMBER_TYPE(CType)

Modified: sandbox/tti/libs/tti/test/test_mf_has_static_fun_template.hpp
==============================================================================
--- sandbox/tti/libs/tti/test/test_mf_has_static_fun_template.hpp (original)
+++ sandbox/tti/libs/tti/test/test_mf_has_static_fun_template.hpp 2011-03-11 11:14:44 EST (Fri, 11 Mar 2011)
@@ -3,24 +3,23 @@
 
 #include "test_structs.hpp"
 #include <boost/tti/static_mem_fun_template.hpp>
-#include <boost/tti/static_mem_fun_template_params.hpp>
 #include <boost/tti/mem_type.hpp>
 
-BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_PARAMS(StatFuncTemplate,(short)(long)(7854))
-BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_PARAMS(TAnother,AnotherFuncTemplate,(int)(long)(long))
-BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_PARAMS(YetAnotherFuncTemplate,(double)(float))
-
-BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(AStatFT,StatFuncTemplate)
-BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(AnotherFuncTemplate)
-BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(YAFuncTemp,YetAnotherFuncTemplate)
-
-BOOST_TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_PARAMS(StatFuncTemplate,(short)(long)(7854))
-BOOST_TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_PARAMS(MFCTAnother,AnotherFuncTemplate,(int)(long)(long))
-BOOST_TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE_PARAMS(YetAnotherFuncTemplate,(double)(float))
-
-BOOST_TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(MCAStatFT,StatFuncTemplate)
-BOOST_TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(AnotherFuncTemplate)
-BOOST_TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(YAFuncTempMFC,YetAnotherFuncTemplate)
+BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(StatFuncTemplate,(short)(long)(7854))
+BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(TAnother,AnotherFuncTemplate,(int)(long)(long))
+BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(YetAnotherFuncTemplate,(double)(float))
+
+BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(AStatFT,StatFuncTemplate,BOOST_PP_NIL)
+BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(AnotherFuncTemplate,BOOST_PP_NIL)
+BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(YAFuncTemp,YetAnotherFuncTemplate,BOOST_PP_NIL)
+
+BOOST_TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(StatFuncTemplate,(short)(long)(7854))
+BOOST_TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(MFCTAnother,AnotherFuncTemplate,(int)(long)(long))
+BOOST_TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(YetAnotherFuncTemplate,(double)(float))
+
+BOOST_TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(MCAStatFT,StatFuncTemplate,BOOST_PP_NIL)
+BOOST_TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(AnotherFuncTemplate,BOOST_PP_NIL)
+BOOST_TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_FUNCTION_TEMPLATE(YAFuncTempMFC,YetAnotherFuncTemplate,BOOST_PP_NIL)
 
 BOOST_TTI_MEMBER_TYPE(AStructType)
 


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