Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r81495 - in trunk: boost/tti boost/tti/detail boost/tti/gen boost/tti/mf libs/tti/doc libs/tti/test
From: eldiener_at_[hidden]
Date: 2012-11-23 11:35:36


Author: eldiener
Date: 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
New Revision: 81495
URL: http://svn.boost.org/trac/boost/changeset/81495

Log:
Simplified syntax for composite types.
Removed:
   trunk/boost/tti/gen/has_member_function_with_sig_gen.hpp
   trunk/boost/tti/gen/has_static_member_function_with_sig_gen.hpp
   trunk/boost/tti/gen/has_template_check_params_gen.hpp
   trunk/boost/tti/gen/vm_has_template_check_params_gen.hpp
   trunk/boost/tti/has_member_function_with_sig.hpp
   trunk/boost/tti/has_static_member_function_with_sig.hpp
   trunk/boost/tti/has_template_check_params.hpp
   trunk/boost/tti/mf/mf_has_member_data.hpp
   trunk/boost/tti/mf/mf_has_member_function.hpp
   trunk/boost/tti/mf/mf_has_static_member_data.hpp
   trunk/boost/tti/mf/mf_has_static_member_function.hpp
   trunk/boost/tti/mf/mf_has_template.hpp
   trunk/boost/tti/mf/mf_has_template_check_params.hpp
   trunk/boost/tti/mf/mf_has_type.hpp
   trunk/boost/tti/tti_vm.hpp
   trunk/boost/tti/vm_has_template_check_params.hpp
   trunk/libs/tti/doc/tti_detail_has_member_function_with_sig.qbk
   trunk/libs/tti/doc/tti_detail_has_static_member_function_with_sig.qbk
   trunk/libs/tti/doc/tti_meta_classes.qbk
   trunk/libs/tti/doc/tti_metafunctions.qbk
   trunk/libs/tti/doc/tti_using_ntm.qbk
   trunk/libs/tti/test/test_mf_has_mem_data.cpp
   trunk/libs/tti/test/test_mf_has_mem_data.hpp
   trunk/libs/tti/test/test_mf_has_mem_data_compile.cpp
   trunk/libs/tti/test/test_mf_has_mem_data_fail.cpp
   trunk/libs/tti/test/test_mf_has_mem_data_fail2.cpp
   trunk/libs/tti/test/test_mf_has_mem_data_fail3.cpp
   trunk/libs/tti/test/test_mf_has_mem_fun.cpp
   trunk/libs/tti/test/test_mf_has_mem_fun.hpp
   trunk/libs/tti/test/test_mf_has_mem_fun_compile.cpp
   trunk/libs/tti/test/test_mf_has_mem_fun_fail.cpp
   trunk/libs/tti/test/test_mf_has_mem_fun_fail2.cpp
   trunk/libs/tti/test/test_mf_has_mem_fun_fail3.cpp
   trunk/libs/tti/test/test_mf_has_static_data.cpp
   trunk/libs/tti/test/test_mf_has_static_data.hpp
   trunk/libs/tti/test/test_mf_has_static_data_compile.cpp
   trunk/libs/tti/test/test_mf_has_static_data_fail.cpp
   trunk/libs/tti/test/test_mf_has_static_data_fail2.cpp
   trunk/libs/tti/test/test_mf_has_static_data_fail3.cpp
   trunk/libs/tti/test/test_mf_has_static_fun.cpp
   trunk/libs/tti/test/test_mf_has_static_fun.hpp
   trunk/libs/tti/test/test_mf_has_static_fun_compile.cpp
   trunk/libs/tti/test/test_mf_has_static_fun_fail.cpp
   trunk/libs/tti/test/test_mf_has_static_fun_fail2.cpp
   trunk/libs/tti/test/test_mf_has_static_fun_fail3.cpp
   trunk/libs/tti/test/test_mf_has_template.cpp
   trunk/libs/tti/test/test_mf_has_template.hpp
   trunk/libs/tti/test/test_mf_has_template_compile.cpp
   trunk/libs/tti/test/test_mf_has_template_cp.cpp
   trunk/libs/tti/test/test_mf_has_template_cp.hpp
   trunk/libs/tti/test/test_mf_has_template_cp_compile.cpp
   trunk/libs/tti/test/test_mf_has_template_cp_fail.cpp
   trunk/libs/tti/test/test_mf_has_template_cp_fail2.cpp
   trunk/libs/tti/test/test_mf_has_template_cp_fail3.cpp
   trunk/libs/tti/test/test_mf_has_template_fail.cpp
   trunk/libs/tti/test/test_mf_has_template_fail2.cpp
   trunk/libs/tti/test/test_mf_has_template_fail3.cpp
   trunk/libs/tti/test/test_mf_has_template_fail4.cpp
   trunk/libs/tti/test/test_mf_has_type.cpp
   trunk/libs/tti/test/test_mf_has_type.hpp
   trunk/libs/tti/test/test_mf_has_type_compile.cpp
   trunk/libs/tti/test/test_mf_has_type_ct.cpp
   trunk/libs/tti/test/test_mf_has_type_ct.hpp
   trunk/libs/tti/test/test_mf_has_type_ct_compile.cpp
   trunk/libs/tti/test/test_mf_has_type_ct_fail.cpp
   trunk/libs/tti/test/test_mf_has_type_ct_fail2.cpp
   trunk/libs/tti/test/test_mf_has_type_ct_fail3.cpp
   trunk/libs/tti/test/test_mf_has_type_fail.cpp
   trunk/libs/tti/test/test_mf_has_type_fail2.cpp
   trunk/libs/tti/test/test_mf_mem_type.cpp
   trunk/libs/tti/test/test_mf_mem_type.hpp
   trunk/libs/tti/test/test_mf_mem_type_compile.cpp
   trunk/libs/tti/test/test_vm_mf_has_template_cp.hpp
Text files modified:
   trunk/boost/tti/detail/dmem_fun.hpp | 17 ++
   trunk/boost/tti/detail/dstatic_mem_fun.hpp | 41 ++++++
   trunk/boost/tti/detail/dtemplate.hpp | 3
   trunk/boost/tti/detail/dtemplate_params.hpp | 38 ------
   trunk/boost/tti/detail/dvm_template_params.hpp | 13 -
   trunk/boost/tti/has_member_function.hpp | 2
   trunk/boost/tti/has_static_member_function.hpp | 9 -
   trunk/boost/tti/has_template.hpp | 81 -------------
   trunk/boost/tti/mf/mf_member_type.hpp | 56 ---------
   trunk/boost/tti/tti.hpp | 2
   trunk/libs/tti/doc/tti.qbk | 2
   trunk/libs/tti/doc/tti_detail.qbk | 76 +++++-------
   trunk/libs/tti/doc/tti_detail_has_member_data.qbk | 39 +++++-
   trunk/libs/tti/doc/tti_detail_has_member_function.qbk | 36 +++++-
   trunk/libs/tti/doc/tti_detail_has_static_member_function.qbk | 40 +++++-
   trunk/libs/tti/doc/tti_detail_has_template.qbk | 8
   trunk/libs/tti/doc/tti_functionality.qbk | 29 ++--
   trunk/libs/tti/doc/tti_introduction.qbk | 24 +--
   trunk/libs/tti/doc/tti_nested_type_and_signatures.qbk | 58 +++++----
   trunk/libs/tti/doc/tti_using_mm.qbk | 35 ++---
   trunk/libs/tti/test/Jamfile.v2 | 230 ++++++++++++++++------------------------
   trunk/libs/tti/test/test_has_member.cpp | 8
   trunk/libs/tti/test/test_has_member.hpp | 14 +-
   trunk/libs/tti/test/test_has_member_compile.cpp | 8
   trunk/libs/tti/test/test_has_member_fail.cpp | 2
   trunk/libs/tti/test/test_has_member_fail2.cpp | 2
   trunk/libs/tti/test/test_has_static_member.cpp | 2
   trunk/libs/tti/test/test_has_static_member.hpp | 10
   trunk/libs/tti/test/test_has_static_member_compile.cpp | 2
   trunk/libs/tti/test/test_has_static_member_fail2.cpp | 2
   trunk/libs/tti/test/test_has_template.hpp | 15 --
   trunk/libs/tti/test/test_has_template_cp.cpp | 12 --
   trunk/libs/tti/test/test_has_template_cp.hpp | 20 ---
   trunk/libs/tti/test/test_has_template_cp_compile.cpp | 17 --
   trunk/libs/tti/test/test_has_template_cp_fail.cpp | 11 -
   trunk/libs/tti/test/test_vm_has_template_cp.cpp | 12 --
   trunk/libs/tti/test/test_vm_has_template_cp.hpp | 20 ---
   trunk/libs/tti/test/test_vm_has_template_cp_compile.cpp | 17 --
   trunk/libs/tti/test/test_vm_has_template_cp_fail.cpp | 10 -
   39 files changed, 376 insertions(+), 647 deletions(-)

Modified: trunk/boost/tti/detail/dmem_fun.hpp
==============================================================================
--- trunk/boost/tti/detail/dmem_fun.hpp (original)
+++ trunk/boost/tti/detail/dmem_fun.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -45,6 +45,19 @@
     }; \
 /**/
 
+#define BOOST_TTI_DETAIL_TRAIT_HAS_CALL_TYPES_MEMBER_FUNCTION(trait,name) \
+ BOOST_TTI_DETAIL_TRAIT_HAS_TYPES_MEMBER_FUNCTION(trait,name) \
+ template<class TTI_T,class TTI_R,class TTI_FS,class TTI_TAG> \
+ struct BOOST_PP_CAT(trait,_detail_call_types) : \
+ BOOST_PP_CAT(trait,_detail_types) \
+ < \
+ typename BOOST_TTI_NAMESPACE::detail::ptmf_seq<TTI_T,TTI_R,TTI_FS,TTI_TAG>::type, \
+ typename boost::remove_const<TTI_T>::type \
+ > \
+ { \
+ }; \
+/**/
+
 #define BOOST_TTI_DETAIL_TRAIT_CHECK_HAS_COMP_MEMBER_FUNCTION(trait,name) \
   BOOST_TTI_DETAIL_TRAIT_HAS_COMP_MEMBER_FUNCTION(trait,name) \
   template<class TTI_T> \
@@ -56,7 +69,7 @@
 /**/
 
 #define BOOST_TTI_DETAIL_TRAIT_HAS_MEMBER_FUNCTION(trait,name) \
- BOOST_TTI_DETAIL_TRAIT_HAS_TYPES_MEMBER_FUNCTION(trait,name) \
+ BOOST_TTI_DETAIL_TRAIT_HAS_CALL_TYPES_MEMBER_FUNCTION(trait,name) \
   BOOST_TTI_DETAIL_TRAIT_CHECK_HAS_COMP_MEMBER_FUNCTION(trait,name) \
   template<class TTI_T,class TTI_R,class TTI_FS,class TTI_TAG> \
   struct BOOST_PP_CAT(trait,_detail_hmf) \
@@ -71,7 +84,7 @@
         boost::is_same<TTI_TAG,boost::function_types::null_tag> \
>, \
       BOOST_PP_CAT(trait,_detail_check_comp)<TTI_T>, \
- BOOST_PP_CAT(trait,_detail_types)<typename BOOST_TTI_NAMESPACE::detail::ptmf_seq<TTI_T,TTI_R,TTI_FS,TTI_TAG>::type,typename boost::remove_const<TTI_T>::type> \
+ BOOST_PP_CAT(trait,_detail_call_types)<TTI_T,TTI_R,TTI_FS,TTI_TAG> \
>::type type; \
     \
     BOOST_STATIC_CONSTANT(bool,value=type::value); \

Modified: trunk/boost/tti/detail/dstatic_mem_fun.hpp
==============================================================================
--- trunk/boost/tti/detail/dstatic_mem_fun.hpp (original)
+++ trunk/boost/tti/detail/dstatic_mem_fun.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -1,5 +1,5 @@
 
-// (C) Copyright Edward Diener 2011
+// (C) Copyright Edward Diener 2011,2012
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt).
@@ -8,14 +8,23 @@
 #define BOOST_TTI_DETAIL_STATIC_MEM_FUN_HPP
 
 #include <boost/config.hpp>
+#include <boost/function_types/is_function.hpp>
+#include <boost/function_types/property_tags.hpp>
+#include <boost/mpl/and.hpp>
 #include <boost/mpl/bool.hpp>
+#include <boost/mpl/eval_if.hpp>
+#include <boost/mpl/identity.hpp>
+#include <boost/mpl/vector.hpp>
 #include <boost/preprocessor/cat.hpp>
-#include <boost/type_traits/detail/yes_no_type.hpp>
 #include <boost/tti/detail/dnullptr.hpp>
+#include <boost/tti/detail/dtfunction.hpp>
+#include <boost/tti/gen/namespace_gen.hpp>
+#include <boost/type_traits/detail/yes_no_type.hpp>
+#include <boost/type_traits/is_same.hpp>
 
-#define TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER_FUNCTION(trait,name) \
+#define BOOST_TTI_DETAIL_TRAIT_IMPL_HAS_STATIC_MEMBER_FUNCTION(trait,name) \
   template<class T,class Type> \
- struct BOOST_PP_CAT(trait,_detail) \
+ struct BOOST_PP_CAT(trait,_detail_ihsmf) \
     { \
     template<Type *> \
     struct helper; \
@@ -32,4 +41,28 @@
     }; \
 /**/
 
+#define BOOST_TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER_FUNCTION(trait,name) \
+ BOOST_TTI_DETAIL_TRAIT_IMPL_HAS_STATIC_MEMBER_FUNCTION(trait,name) \
+ template<class TTI_T,class TTI_R,class TTI_FS,class TTI_TAG> \
+ struct BOOST_PP_CAT(trait,_detail_hsmf) : \
+ BOOST_PP_CAT(trait,_detail_ihsmf) \
+ < \
+ TTI_T, \
+ typename \
+ boost::mpl::eval_if \
+ < \
+ boost::mpl::and_ \
+ < \
+ boost::function_types::is_function<TTI_R>, \
+ boost::is_same<TTI_FS,boost::mpl::vector<> >, \
+ boost::is_same<TTI_TAG,boost::function_types::null_tag> \
+ >, \
+ boost::mpl::identity<TTI_R>, \
+ BOOST_TTI_NAMESPACE::detail::tfunction_seq<TTI_R,TTI_FS,TTI_TAG> \
+ >::type \
+ > \
+ { \
+ }; \
+/**/
+
 #endif // BOOST_TTI_DETAIL_STATIC_MEM_FUN_HPP

Modified: trunk/boost/tti/detail/dtemplate.hpp
==============================================================================
--- trunk/boost/tti/detail/dtemplate.hpp (original)
+++ trunk/boost/tti/detail/dtemplate.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -7,8 +7,6 @@
 #if !defined(BOOST_TTI_DETAIL_TEMPLATE_HPP)
 #define BOOST_TTI_DETAIL_TEMPLATE_HPP
 
-#if !defined(BOOST_TTI_VERSION_1_5)
-
 #include <boost/config.hpp>
 #include <boost/mpl/has_xxx.hpp>
 #include <boost/preprocessor/cat.hpp>
@@ -47,5 +45,4 @@
     }; \
 /**/
 
-#endif // !BOOST_TTI_VERSION_1_5
 #endif // !BOOST_TTI_DETAIL_TEMPLATE_HPP

Modified: trunk/boost/tti/detail/dtemplate_params.hpp
==============================================================================
--- trunk/boost/tti/detail/dtemplate_params.hpp (original)
+++ trunk/boost/tti/detail/dtemplate_params.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -17,19 +17,9 @@
 #include <boost/preprocessor/punctuation/comma_if.hpp>
 #include <boost/preprocessor/repetition/repeat.hpp>
 #include <boost/preprocessor/repetition/enum.hpp>
-
-#if !defined(BOOST_TTI_VERSION_1_5)
-
 #include <boost/preprocessor/array/enum.hpp>
 #include <boost/preprocessor/array/size.hpp>
 
-#else
-
-#include <boost/preprocessor/seq/enum.hpp>
-#include <boost/preprocessor/seq/size.hpp>
-
-#endif
-
 #if !defined(BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE)
 
 #define BOOST_TTI_DETAIL_TEMPLATE_PARAMETERS(z,n,args) \
@@ -196,8 +186,6 @@
 
 #endif // !BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE
 
-#if !defined(BOOST_TTI_VERSION_1_5)
-
 #define BOOST_TTI_DETAIL_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(trait,name,tpArray) \
   BOOST_TTI_DETAIL_TRAIT_CALL_HAS_TEMPLATE_CHECK_PARAMS(BOOST_PP_CAT(trait,_detail),name,tpArray) \
   template<class TTI_T> \
@@ -229,30 +217,4 @@
 #endif // !BOOST_WORKAROUND(BOOST_MSVC, <= 1400)
 #endif // !defined(BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE)
 
-#else // BOOST_TTI_VERSION_1_5
-
-#if !defined(BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE)
-#if !BOOST_WORKAROUND(BOOST_MSVC, <= 1400)
-
-#define BOOST_TTI_DETAIL_TRAIT_CALL_HAS_TEMPLATE_CHECK_PARAMS(trait,name,tpSeq) \
- BOOST_TTI_DETAIL_HAS_MEMBER_WITH_FUNCTION_SFINAE \
- ( \
- ( BOOST_PP_ADD(BOOST_PP_SEQ_SIZE(tpSeq),4), ( trait, name, 1, false, BOOST_PP_SEQ_ENUM(tpSeq) ) ) \
- ) \
-/**/
-
-#else // BOOST_WORKAROUND(BOOST_MSVC, <= 1400)
-
-#define BOOST_TTI_DETAIL_TRAIT_CALL_HAS_TEMPLATE_CHECK_PARAMS(trait,name,tpSeq) \
- BOOST_TTI_DETAIL_HAS_MEMBER_WITH_TEMPLATE_SFINAE \
- ( \
- ( BOOST_PP_ADD(BOOST_PP_SEQ_SIZE(tpSeq),4), ( trait, name, 1, false, BOOST_PP_SEQ_ENUM(tpSeq) ) ) \
- ) \
-/**/
-
-#endif // !BOOST_WORKAROUND(BOOST_MSVC, <= 1400)
-#endif // !defined(BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE)
-
-#endif // !BOOST_TTI_VERSION_1_5
-
 #endif // BOOST_TTI_DETAIL_TEMPLATE_PARAMS_HPP

Modified: trunk/boost/tti/detail/dvm_template_params.hpp
==============================================================================
--- trunk/boost/tti/detail/dvm_template_params.hpp (original)
+++ trunk/boost/tti/detail/dvm_template_params.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -16,10 +16,6 @@
 #include <boost/mpl/identity.hpp>
 #include <boost/preprocessor/arithmetic/add.hpp>
 #include <boost/preprocessor/variadic/size.hpp>
-#include "dtemplate_params.hpp"
-
-#if !defined(BOOST_TTI_VERSION_1_5)
-
 #include <boost/preprocessor/cat.hpp>
 #include <boost/preprocessor/comparison/equal.hpp>
 #include <boost/preprocessor/control/iif.hpp>
@@ -29,9 +25,8 @@
 #include <boost/preprocessor/seq/seq.hpp>
 #include <boost/preprocessor/variadic/elem.hpp>
 #include <boost/preprocessor/variadic/to_seq.hpp>
-#include "dtemplate.hpp"
-
-#endif
+#include <boost/tti/detail/dtemplate.hpp>
+#include <boost/tti/detail/dtemplate_params.hpp>
 
 #if !defined(BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE)
 #if !BOOST_WORKAROUND(BOOST_MSVC, <= 1400)
@@ -61,8 +56,6 @@
 
 #endif // !defined(BOOST_MPL_CFG_NO_HAS_XXX_TEMPLATE)
 
-#if !defined(BOOST_TTI_VERSION_1_5)
-
 #define BOOST_TTI_DETAIL_VM_CHECK_MORE_THAN_TWO(trait,...) \
   BOOST_PP_IIF \
     ( \
@@ -150,8 +143,6 @@
     }; \
 /**/
 
-#endif // !BOOST_TTI_VERSION_1_5
-
 #endif // BOOST_PP_VARIADICS
 
 #endif // BOOST_TTI_DETAIL_VM_TEMPLATE_PARAMS_HPP

Deleted: trunk/boost/tti/gen/has_member_function_with_sig_gen.hpp
==============================================================================
--- trunk/boost/tti/gen/has_member_function_with_sig_gen.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,31 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#if !defined(TTI_COMP_MEM_FUN_GEN_HPP)
-#define TTI_COMP_MEM_FUN_GEN_HPP
-
-#include <boost/preprocessor/cat.hpp>
-
-/*
-
- The succeeding comments in this file are in doxygen format.
-
-*/
-
-/** \file
-*/
-
-/// Generates the macro metafunction name for BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG.
-/**
- name = the name of the member function.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG_GEN(name) \
- BOOST_PP_CAT(has_member_function_with_sig_,name) \
-/**/
-
-#endif // TTI_COMP_MEM_FUN_GEN_HPP

Deleted: trunk/boost/tti/gen/has_static_member_function_with_sig_gen.hpp
==============================================================================
--- trunk/boost/tti/gen/has_static_member_function_with_sig_gen.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,31 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#if !defined(TTI_COMP_STATIC_MEM_FUN_GEN_HPP)
-#define TTI_COMP_STATIC_MEM_FUN_GEN_HPP
-
-#include <boost/preprocessor/cat.hpp>
-
-/*
-
- The succeeding comments in this file are in doxygen format.
-
-*/
-
-/** \file
-*/
-
-/// Generates the macro metafunction name for BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG.
-/**
- name = the name of the static member function.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG_GEN(name) \
- BOOST_PP_CAT(has_static_member_function_with_sig_,name) \
-/**/
-
-#endif // TTI_COMP_STATIC_MEM_FUN_GEN_HPP

Deleted: trunk/boost/tti/gen/has_template_check_params_gen.hpp
==============================================================================
--- trunk/boost/tti/gen/has_template_check_params_gen.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,35 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#if !defined(TTI_TEMPLATE_PARAMS_GEN_HPP)
-#define TTI_TEMPLATE_PARAMS_GEN_HPP
-
-#if defined(BOOST_TTI_VERSION_1_5)
-
-#include <boost/preprocessor/cat.hpp>
-
-/*
-
- The succeeding comments in this file are in doxygen format.
-
-*/
-
-/** \file
-*/
-
-/// Generates the macro metafunction name for BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS.
-/**
- name = the name of the class template.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(name) \
- BOOST_PP_CAT(has_template_check_params_,name) \
-/**/
-
-#endif
-
-#endif // TTI_TEMPLATE_PARAMS_GEN_HPP

Deleted: trunk/boost/tti/gen/vm_has_template_check_params_gen.hpp
==============================================================================
--- trunk/boost/tti/gen/vm_has_template_check_params_gen.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,39 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#if !defined(TTI_VM_TEMPLATE_PARAMS_GEN_HPP)
-#define TTI_VM_TEMPLATE_PARAMS_GEN_HPP
-
-#if defined(BOOST_TTI_VERSION_1_5)
-
-#include <boost/preprocessor/config/config.hpp>
-
-#if BOOST_PP_VARIADICS
-
-#include <boost/preprocessor/cat.hpp>
-
-/*
-
- The succeeding comments in this file are in doxygen format.
-
-*/
-
-/** \file
-*/
-
-/// Generates the macro metafunction name for BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS.
-/**
- name = the name of the class template.
-
- returns = the generated macro metafunction name.
-*/
-#define BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_GEN(name) \
- BOOST_PP_CAT(has_template_check_params_,name) \
-/**/
-
-#endif // BOOST_PP_VARIADICS
-#endif
-#endif // TTI_VM_TEMPLATE_PARAMS_GEN_HPP

Modified: trunk/boost/tti/has_member_function.hpp
==============================================================================
--- trunk/boost/tti/has_member_function.hpp (original)
+++ trunk/boost/tti/has_member_function.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -10,9 +10,9 @@
 #include <boost/function_types/property_tags.hpp>
 #include <boost/mpl/vector.hpp>
 #include <boost/preprocessor/cat.hpp>
-#include <boost/tti/gen/has_member_function_gen.hpp>
 #include <boost/tti/detail/ddeftype.hpp>
 #include <boost/tti/detail/dmem_fun.hpp>
+#include <boost/tti/gen/has_member_function_gen.hpp>
 #include <boost/tti/gen/namespace_gen.hpp>
 
 /*

Deleted: trunk/boost/tti/has_member_function_with_sig.hpp
==============================================================================
--- trunk/boost/tti/has_member_function_with_sig.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,93 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#if !defined(BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG_HPP)
-#define BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG_HPP
-
-#include <boost/config.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/tti/gen/has_member_function_with_sig_gen.hpp>
-#include <boost/tti/detail/dcomp_mem_fun.hpp>
-
-/*
-
- The succeeding comments in this file are in doxygen format.
-
-*/
-
-/** \file
-*/
-
-/// Expands to a metafunction which tests whether a member function with a particular name and composite type exists.
-/**
-
- trait = the name of the metafunction within the tti namespace.
-
- name = the name of the inner member.
-
- generates a metafunction called "trait" where 'trait' is the macro parameter.
-
- template<class TTI_T>
- struct trait
- {
- static const value = unspecified;
- typedef mpl::bool_<true-or-false> type;
- };
-
- The metafunction types and return:
-
- TTI_T = the member function type,
- in the form of a member function pointer - 'return_type (Class::*)(parameter_types...)',
- in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' exists,
- with the appropriate member function type as defined by TTI_T,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_WITH_SIG(trait,name) \
- BOOST_TTI_DETAIL_TRAIT_HAS_COMP_MEMBER_FUNCTION(trait,name) \
- template<class TTI_T> \
- struct trait : \
- BOOST_PP_CAT(trait,_detail_hcmf)<TTI_T> \
- { \
- }; \
-/**/
-
-/// Expands to a metafunction which tests whether a member function with a particular name and composite type exists.
-/**
-
- name = the name of the inner member.
-
- generates a metafunction called "has_member_function_with_sig_name" where 'name' is the macro parameter.
-
- template<class TTI_T>
- struct has_member_function_with_sig_name
- {
- static const value = unspecified;
- typedef mpl::bool_<true-or-false> type;
- };
-
- The metafunction types and return:
-
- TTI_T = the member function type,
- in the form of a member function pointer - 'return_type (Class::*)(parameter_types...)',
- in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' exists,
- with the appropriate member function type as defined by TTI_T,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG(name) \
- BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_WITH_SIG \
- ( \
- BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG_GEN(name), \
- name \
- ) \
-/**/
-
-#endif // BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG_HPP

Modified: trunk/boost/tti/has_static_member_function.hpp
==============================================================================
--- trunk/boost/tti/has_static_member_function.hpp (original)
+++ trunk/boost/tti/has_static_member_function.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -7,14 +7,11 @@
 #if !defined(TTI_HAS_STATIC_MEMBER_FUNCTION_HPP)
 #define TTI_HAS_STATIC_MEMBER_FUNCTION_HPP
 
-#include <boost/config.hpp>
 #include <boost/function_types/property_tags.hpp>
 #include <boost/mpl/vector.hpp>
 #include <boost/preprocessor/cat.hpp>
-#include <boost/tti/gen/has_static_member_function_gen.hpp>
-#include <boost/tti/gen/namespace_gen.hpp>
 #include <boost/tti/detail/dstatic_mem_fun.hpp>
-#include <boost/tti/detail/dtfunction.hpp>
+#include <boost/tti/gen/has_static_member_function_gen.hpp>
 
 /*
 
@@ -59,10 +56,10 @@
                           
 */
 #define BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION(trait,name) \
- TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER_FUNCTION(trait,name) \
+ BOOST_TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER_FUNCTION(trait,name) \
   template<class TTI_T,class TTI_R,class TTI_FS = boost::mpl::vector<>,class TTI_TAG = boost::function_types::null_tag> \
   struct trait : \
- BOOST_PP_CAT(trait,_detail)<TTI_T,typename BOOST_TTI_NAMESPACE::detail::tfunction_seq<TTI_R,TTI_FS,TTI_TAG>::type> \
+ BOOST_PP_CAT(trait,_detail_hsmf)<TTI_T,TTI_R,TTI_FS,TTI_TAG> \
     { \
     }; \
 /**/

Deleted: trunk/boost/tti/has_static_member_function_with_sig.hpp
==============================================================================
--- trunk/boost/tti/has_static_member_function_with_sig.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,101 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#if !defined(TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG_HPP)
-#define TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG_HPP
-
-#include <boost/config.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/tti/gen/has_static_member_function_with_sig_gen.hpp>
-#include <boost/tti/detail/dcomp_static_mem_fun.hpp>
-
-/*
-
- The succeeding comments in this file are in doxygen format.
-
-*/
-
-/** \file
-*/
-
-/// Expands to a metafunction which tests whether a static member function with a particular name and composite type exists.
-/**
-
- trait = the name of the metafunction within the tti namespace.
-
- name = the name of the inner member.
-
- generates a metafunction called "trait" where 'trait' is the macro parameter.
-
- template<class TTI_T,class TTI_Type>
- struct trait
- {
- static const value = unspecified;
- typedef mpl::bool_<true-or-false> type;
- };
-
- The metafunction types and return:
-
- TTI_T = the enclosing type.
-
- TTI_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
- with the TTI_Type static member function type,
- within the enclosing TTI_T type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG(trait,name) \
- BOOST_TTI_DETAIL_TRAIT_HAS_COMP_STATIC_MEMBER_FUNCTION(trait,name) \
- template<class TTI_T,class TTI_Type> \
- struct trait : \
- BOOST_PP_CAT(trait,_detail)<TTI_T,TTI_Type> \
- { \
- }; \
-/**/
-
-/// Expands to a metafunction which tests whether a static member function with a particular name and composite type exists.
-/**
-
- name = the name of the inner member.
-
- generates a metafunction called "has_static_member_function_with_sig_name" where 'name' is the macro parameter.
-
- template<class TTI_T,class TTI_Type>
- struct has_static_member_function_with_sig_name
- {
- static const value = unspecified;
- typedef mpl::bool_<true-or-false> type;
- };
-
- The metafunction types and return:
-
- TTI_T = the enclosing type.
-
- TTI_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
- with the TTI_Type static member function type,
- within the enclosing TTI_T type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG(name) \
- BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG \
- ( \
- BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG_GEN(name), \
- name \
- ) \
-/**/
-
-#endif // TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG_HPP

Modified: trunk/boost/tti/has_template.hpp
==============================================================================
--- trunk/boost/tti/has_template.hpp (original)
+++ trunk/boost/tti/has_template.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -1,5 +1,5 @@
 
-// (C) Copyright Edward Diener 2011
+// (C) Copyright Edward Diener 2011,2012
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt).
@@ -18,9 +18,6 @@
 
 #include <boost/config.hpp>
 #include <boost/tti/gen/has_template_gen.hpp>
-
-#if !defined(BOOST_TTI_VERSION_1_5)
-
 #include <boost/preprocessor/config/config.hpp>
 #include <boost/preprocessor/control/iif.hpp>
 
@@ -299,7 +296,7 @@
             
              Otherwise a compiler error occurs.
     
- generates a metafunction called "trait" where 'trait' is the first macro parameter.
+ generates a metafunction called "has_template_'name'" where 'name' is the first macro parameter.
     
               template<class TTI_T>
               struct trait
@@ -348,78 +345,4 @@
 /**/
 
 #endif // BOOST_PP_VARIADICS
-
-#else // BOOST_TTI_VERSION_1_5
-
-#include <boost/mpl/has_xxx.hpp>
-#include <boost/preprocessor/cat.hpp>
-
-/// Expands to a metafunction which tests whether an inner class template with a particular name exists.
-/**
-
- trait = the name of the metafunction within the tti namespace.
-
- name = the name of the inner template.
-
- generates a metafunction called "has_template_'name'" where 'name' is the mscro parameter.
-
- template<class TTI_T>
- struct has_template_'name'
- {
- static const value = unspecified;
- typedef mpl::bool_<true-or-false> type;
- };
-
- The metafunction types and return:
-
- TTI_T = the enclosing type in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' template exists within the enclosing type,
- otherwise 'value' is false.
-
- The template must have all 'class' ( or 'typename' ) parameters types.
-
-*/
-#define BOOST_TTI_TRAIT_HAS_TEMPLATE(trait,name) \
- BOOST_MPL_HAS_XXX_TEMPLATE_NAMED_DEF(BOOST_PP_CAT(trait,_detail_mpl), name, false) \
- template<class TTI_T> \
- struct trait : \
- BOOST_PP_CAT(trait,_detail_mpl)<TTI_T> \
- { \
- }; \
-/**/
-
-/// Expands to a metafunction which tests whether an inner class template with a particular name exists.
-/**
-
- name = the name of the inner template.
-
- generates a metafunction called "has_template_name" where 'name' is the macro parameter.
-
- template<class TTI_T>
- struct has_template_name
- {
- static const value = unspecified;
- typedef mpl::bool_<true-or-false> type;
- };
-
- The metafunction types and return:
-
- TTI_T = the enclosing type in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' template exists within the enclosing type,
- otherwise 'value' is false.
-
- The template must have all 'class' ( or 'typename' ) parameters types.
-
-*/
-#define BOOST_TTI_HAS_TEMPLATE(name) \
- BOOST_TTI_TRAIT_HAS_TEMPLATE \
- ( \
- BOOST_TTI_HAS_TEMPLATE_GEN(name), \
- name \
- ) \
-/**/
-
-#endif // BOOST_TTI_VERSION_1_5
 #endif // BOOST_TTI_HAS_TEMPLATE_HPP

Deleted: trunk/boost/tti/has_template_check_params.hpp
==============================================================================
--- trunk/boost/tti/has_template_check_params.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,101 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#if !defined(BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_HPP)
-#define BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_HPP
-
-#if defined(BOOST_TTI_VERSION_1_5)
-
-#include <boost/config.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/tti/gen/has_template_check_params_gen.hpp>
-#include <boost/tti/detail/dtemplate_params.hpp>
-
-/*
-
- The succeeding comments in this file are in doxygen format.
-
-*/
-
-/** \file
-*/
-
-/// Expands to a metafunction which tests whether an inner class template with a particular name and signature exists.
-/**
-
- trait = the name of the metafunction within the tti namespace.
-
- name = the name of the inner class template.
-
- tpSeq = a Boost PP sequence which has the class template parameters.
- Each part of the template parameters separated by a comma ( , )
- is put in a separate sequence element.
-
- generates a metafunction called "trait" where 'trait' is the macro parameter.
-
- template<class TTI_T>
- struct trait
- {
- static const value = unspecified;
- typedef mpl::bool_<true-or-false> type;
- };
-
- The metafunction types and return:
-
- TTI_T = the enclosing type in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' class template with the signature
- as defined by the 'tpSeq' exists within the enclosing TTI_T type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(trait,name,tpSeq) \
- BOOST_TTI_DETAIL_TRAIT_CALL_HAS_TEMPLATE_CHECK_PARAMS(BOOST_PP_CAT(trait,_detail),name,tpSeq) \
- template<class TTI_T> \
- struct trait : \
- BOOST_PP_CAT(trait,_detail)<TTI_T> \
- { \
- }; \
-/**/
-
-/// Expands to a metafunction which tests whether an inner class template with a particular name and signature exists.
-/**
-
- name = the name of the inner class template.
-
- tpSeq = a Boost PP sequence which has the class template parameters.
- Each part of the template parameters separated by a comma ( , )
- is put in a separate sequence element.
-
- generates a metafunction called "has_template_check_params_name" where 'name' is the macro parameter.
-
- template<class TTI_T>
- struct has_template_check_params_name
- {
- static const value = unspecified;
- typedef mpl::bool_<true-or-false> type;
- };
-
- The metafunction types and return:
-
- TTI_T = the enclosing type in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' class template with the signature
- as defined by the 'tpSeq' exists within the enclosing TTI_T type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS(name,tpSeq) \
- BOOST_TTI_TRAIT_HAS_TEMPLATE_CHECK_PARAMS \
- ( \
- BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(name), \
- name, \
- tpSeq \
- ) \
-/**/
-
-#endif // BOOST_TTI_VERSION_1_5
-#endif // !BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_HPP

Deleted: trunk/boost/tti/mf/mf_has_member_data.hpp
==============================================================================
--- trunk/boost/tti/mf/mf_has_member_data.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,77 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#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>
-#include <boost/mpl/quote.hpp>
-#include <boost/tti/gen/namespace_gen.hpp>
-#include <boost/tti/detail/dtclass.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 class types as nullary metafunctions whose typedef 'type' member is the actual type used.
-
- template<class TTI_HasMemberData,class TTI_T,class TTI_Type>
- struct mf_has_member_data
- {
- static const value = unspecified;
- typedef mpl::bool_<true-or-false> type;
- };
-
- The metafunction types and return:
-
- TTI_HasMemberData = a Boost MPL lambda expression using the metafunction generated from the BOOST_TTI_HAS_MEMBER_DATA ( or BOOST_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 a metafunction class generated by boost::mpl::quote2.
-
- TTI_T = the enclosing type as a nullary metafunction.
-
- TTI_Type = the type of the member data as a nullary metafunction.
- If the type is not a class type it may be passed as is.
-
- returns = 'value' is true if the member data exists within the enclosing type,
- otherwise 'value' is false.
-
- */
- template
- <
- class TTI_HasMemberData,
- class TTI_T,
- class TTI_Type
- >
- struct mf_has_member_data :
- boost::mpl::apply
- <
- TTI_HasMemberData,
- typename TTI_T::type,
- typename BOOST_TTI_NAMESPACE::detail::tclass<TTI_Type>::type
- >::type
- {
- };
- }
- }
-
-#endif // TTI_MF_MEMBER_DATA_HPP

Deleted: trunk/boost/tti/mf/mf_has_member_function.hpp
==============================================================================
--- trunk/boost/tti/mf/mf_has_member_function.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,91 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#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/quote.hpp>
-#include <boost/mpl/transform.hpp>
-#include <boost/mpl/vector.hpp>
-#include <boost/tti/gen/namespace_gen.hpp>
-#include <boost/tti/detail/dtclass.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 class types, except for the optional parameters, as nullary metafunctions whose typedef 'type' member is the actual type used.
-
- template<class TTI_HasMemberFunction,class TTI_T,class TTI_R,class TTI_FS = boost::mpl::vector<>,class TTI_TAG = boost::function_types::null_tag>
- struct mf_has_member_function
- {
- static const value = unspecified;
- typedef mpl::bool_<true-or-false> type;
- };
-
- The metafunction types and return:
-
- TTI_HasMemberFunction = a Boost MPL lambda expression using the metafunction generated from the BOOST_TTI_HAS_MEMBER_FUNCTION ( or BOOST_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 a metafunction class generated by boost::mpl::quote4.
-
- TTI_T = the enclosing type as a nullary metafunction.
-
- TTI_R = the return type of the member function as a nullary metafunction.
- If the type is not a class type it may be passed as is.
-
- TTI_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<>. Each parameter is a nullary
- metafunction, but if the type is a non-class type it may be passed as is.
-
- TTI_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 TTI_HasMemberFunction,
- class TTI_T,
- class TTI_R,
- class TTI_FS = boost::mpl::vector<>,
- class TTI_TAG = boost::function_types::null_tag
- >
- struct mf_has_member_function :
- boost::mpl::apply
- <
- TTI_HasMemberFunction,
- typename TTI_T::type,
- typename BOOST_TTI_NAMESPACE::detail::tclass<TTI_R>::type,
- typename boost::mpl::transform<TTI_FS,BOOST_TTI_NAMESPACE::detail::tclass<boost::mpl::_1> >::type,
- TTI_TAG
- >::type
- {
- };
- }
- }
-
-#endif // TTI_MF_MEMBER_FUNCTION_HPP

Deleted: trunk/boost/tti/mf/mf_has_static_member_data.hpp
==============================================================================
--- trunk/boost/tti/mf/mf_has_static_member_data.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,77 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#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>
-#include <boost/mpl/quote.hpp>
-#include <boost/tti/gen/namespace_gen.hpp>
-#include <boost/tti/detail/dtclass.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 class types as nullary metafunctions whose typedef 'type' member is the actual type used.
-
- template<class TTI_HasStaticMemberData,class TTI_T,class TTI_Type>
- struct mf_has_member_data
- {
- static const value = unspecified;
- typedef mpl::bool_<true-or-false> type;
- };
-
- The metafunction types and return:
-
- TTI_HasStaticMemberData = a Boost MPL lambda expression using the metafunction generated from the BOOST_TTI_HAS_STATIC_MEMBER_DATA ( or BOOST_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 a metafunction class generated by boost::mpl::quote2.
-
- TTI_T = the enclosing type as a nullary metafunction.
-
- TTI_Type = the type of the static member data as a nullary metafunction.
- If the type is not a class type it may be passed as is.
-
- returns = 'value' is true if the static member data exists within the enclosing type,
- otherwise 'value' is false.
-
- */
- template
- <
- class TTI_HasStaticMemberData,
- class TTI_T,
- class TTI_Type
- >
- struct mf_has_static_member_data :
- boost::mpl::apply
- <
- TTI_HasStaticMemberData,
- typename TTI_T::type,
- typename BOOST_TTI_NAMESPACE::detail::tclass<TTI_Type>::type
- >::type
- {
- };
- }
- }
-
-#endif // TTI_MF_STATIC_MEMBER_DATA_HPP

Deleted: trunk/boost/tti/mf/mf_has_static_member_function.hpp
==============================================================================
--- trunk/boost/tti/mf/mf_has_static_member_function.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,92 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#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/quote.hpp>
-#include <boost/mpl/transform.hpp>
-#include <boost/mpl/vector.hpp>
-#include <boost/tti/gen/namespace_gen.hpp>
-#include <boost/tti/detail/dtclass.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 class types, except for the optional parameters, as nullary metafunctions whose typedef 'type' member is the actual type used.
-
- template<class TTI_HasStaticMemberFunction,class TTI_T,class TTI_R,class TTI_FS = boost::mpl::vector<>,class TTI_TAG = boost::function_types::null_tag>
- struct mf_has_static_member_function
- {
- static const value = unspecified;
- typedef mpl::bool_<true-or-false> type;
- };
-
- The metafunction types and return:
-
- TTI_HasStaticMemberFunction = a Boost MPL lambda expression using the metafunction generated from the BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION ( or BOOST_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 a metafunction class generated by boost::mpl::quote4.
-
- TTI_T = the enclosing type as a nullary metafunction.
-
- TTI_R = the return type of the static member function as a nullary metafunction.
- If the type is not a class type it may be passed as is.
-
- TTI_FS = an optional parameter which is the parameters of the static member function, each class type as a nullary metafunction, as a boost::mpl forward sequence.
- This parameter defaults to boost::mpl::vector<>. Each parameter is a nullary
- metafunction, but if the type is a non-class type it may be passed as is.
-
- TTI_TAG = an optional parameter which is a boost::function_types tag to apply to the static member function.
- This parameter defaults to boost::function_types::null_tag.
-
- returns = 'value' is true if the static member function
- exists within the enclosing type,
- otherwise 'value' is false.
-
- */
- template
- <
- class TTI_HasStaticMemberFunction,
- class TTI_T,
- class TTI_R,
- class TTI_FS = boost::mpl::vector<>,
- class TTI_TAG = boost::function_types::null_tag
- >
- struct mf_has_static_member_function :
- boost::mpl::apply
- <
- TTI_HasStaticMemberFunction,
- typename TTI_T::type,
- typename BOOST_TTI_NAMESPACE::detail::tclass<TTI_R>::type,
- typename boost::mpl::transform<TTI_FS,BOOST_TTI_NAMESPACE::detail::tclass<boost::mpl::_1> >::type,
- TTI_TAG
- >::type
- {
- };
- }
- }
-
-#endif // TTI_MF_STATIC_MEMBER_FUNCTION_HPP

Deleted: trunk/boost/tti/mf/mf_has_template.hpp
==============================================================================
--- trunk/boost/tti/mf/mf_has_template.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,72 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#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>
-#include <boost/mpl/quote.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.
-
- template<class TTI_HasTemplate,class TTI_T>
- struct mf_has_template
- {
- static const value = unspecified;
- typedef mpl::bool_<true-or-false> type;
- };
-
- The metafunction types and return:
-
- TTI_HasTemplate = a Boost MPL lambda expression using the metafunction generated from the BOOST_TTI_HAS_TEMPLATE ( BOOST_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 a metafunction class generated by boost::mpl::quote1.
-
- TTI_T = the enclosing type as a nullary metafunction.
-
- returns = 'value' is true if the template exists within the enclosing type,
- otherwise 'value' is false.
-
- The template being introspected must have all 'class' ( or 'typename' ) parameters types.
-
- */
- template
- <
- class TTI_HasTemplate,
- class TTI_T
- >
- struct mf_has_template :
- boost::mpl::apply
- <
- TTI_HasTemplate,
- typename TTI_T::type
- >::type
- {
- };
- }
- }
-
-#endif // TTI_MF_TEMPLATE_HPP

Deleted: trunk/boost/tti/mf/mf_has_template_check_params.hpp
==============================================================================
--- trunk/boost/tti/mf/mf_has_template_check_params.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,74 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#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>
-#include <boost/mpl/quote.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.
-
- template<class TTI_HasTemplateCheckParams,class TTI_T>
- struct mf_has_template_check_params
- {
- static const value = unspecified;
- typedef mpl::bool_<true-or-false> type;
- };
-
- The metafunction types and return:
-
- TTI_HasTemplateCheckParams = a Boost MPL lambda expression using the metafunction generated from either the BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS ( BOOST_TTI_TRAIT_HAS_TEMPLATE_CHECK_PARAMS )
- or BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS ( BOOST_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 a metafunction class generated by boost::mpl::quote1.
-
- TTI_T = The enclosing type as a nullary metafunction.
-
- returns = 'value' is true if the template exists within the enclosing type,
- otherwise 'value' is false.
-
- The template being introspected has the parameters specified by the macro metafunction passed as the first parameter
- to this metafunction.
-
- */
- template
- <
- class TTI_HasTemplateCheckParams,
- class TTI_T
- >
- struct mf_has_template_check_params :
- boost::mpl::apply
- <
- TTI_HasTemplateCheckParams,
- typename TTI_T::type
- >::type
- {
- };
- }
- }
-
-#endif // TTI_MF_TEMPLATE_PARAMS_HPP

Deleted: trunk/boost/tti/mf/mf_has_type.hpp
==============================================================================
--- trunk/boost/tti/mf/mf_has_type.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,81 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#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 <boost/mpl/quote.hpp>
-#include <boost/tti/gen/namespace_gen.hpp>
-#include <boost/tti/detail/dnotype.hpp>
-#include <boost/tti/detail/dtclass.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 class types as nullary metafunctions whose typedef 'type' member is the actual type used.
-
- template<class TTI_HasType,class TTI_T,class TTI_U = boost::mpl::identity<boost::tti::detail::notype> >
- struct mf_has_type
- {
- static const value = unspecified;
- typedef mpl::bool_<true-or-false> type;
- };
-
- The metafunction types and return:
-
- TTI_HasType = a Boost MPL lambda expression using the metafunction generated from the BOOST_TTI_HAS_TYPE ( or BOOST_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 a metafunction class generated by boost::mpl::quote2.
-
- TTI_T = the enclosing type as a nullary metafunction.
-
- TTI_U = the type of the inner type as a nullary metafunction.
- If the type is not a class type it may be passed as is.
- This is an optional parameter. It defaults to an internal
- marker type called boost::tti::detail::notype.
-
- 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 TTI_HasType,
- class TTI_T,
- class TTI_U = boost::mpl::identity<BOOST_TTI_NAMESPACE::detail::notype>
- >
- struct mf_has_type :
- boost::mpl::apply
- <
- TTI_HasType,
- typename TTI_T::type,
- typename BOOST_TTI_NAMESPACE::detail::tclass<TTI_U>::type
- >::type
- {
- };
- }
- }
-
-#endif // TTI_MF_TYPE_HPP

Modified: trunk/boost/tti/mf/mf_member_type.hpp
==============================================================================
--- trunk/boost/tti/mf/mf_member_type.hpp (original)
+++ trunk/boost/tti/mf/mf_member_type.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -1,5 +1,5 @@
 
-// (C) Copyright Edward Diener 2011
+// (C) Copyright Edward Diener 2011,2012
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt).
@@ -7,12 +7,7 @@
 #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/mpl/quote.hpp>
 #include <boost/type_traits/is_same.hpp>
 #include <boost/tti/gen/namespace_gen.hpp>
 #include <boost/tti/detail/dnotype.hpp>
@@ -64,55 +59,6 @@
>
       {
       };
-
- /// 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.
-
- template<class TTI_MemberType,class TTI_T>
- struct mf_member_type
- {
- typedef unspecified type;
- };
-
- The metafunction types and return:
-
- TTI_MemberType = a Boost MPL lambda expression using the metafunction generated from the BOOST_TTI_MEMBER_TYPE ( or BOOST_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 a metafunction class generated by boost::mpl::quote1.
-
- TTI_T = the enclosing type as a nullary metafunction.
-
- returns = 'type' is the inner type of the 'name' in BOOST_TTI_MEMBER_TYPE ( or BOOST_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 BOOST_TTI_MEMBER_TYPE ( or BOOST_TTI_TRAIT_MEMBER_TYPE ) as the typedef 'type'
- of a metafunction, but only if it exists within the enclosing type. This allows for
- a evaluation of inner type existence, without generating a compiler error,
- 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 BOOST_TTI_MEMBER_TYPE ( or BOOST_TTI_TRAIT_MEMBER_TYPE ) or from this
- metafunction itself.
-
- */
- template
- <
- class TTI_MemberType,
- class TTI_T
- >
- struct mf_member_type :
- boost::mpl::apply
- <
- TTI_MemberType,
- typename TTI_T::type
- >
- {
- };
-
     }
   }
   

Modified: trunk/boost/tti/tti.hpp
==============================================================================
--- trunk/boost/tti/tti.hpp (original)
+++ trunk/boost/tti/tti.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -9,10 +9,8 @@
 
 #include "has_member_data.hpp"
 #include "has_member_function.hpp"
-#include "has_member_function_with_sig.hpp"
 #include "has_static_member_data.hpp"
 #include "has_static_member_function.hpp"
-#include "has_static_member_function_with_sig.hpp"
 #include "has_template.hpp"
 #include "has_type.hpp"
 #include "member_type.hpp"

Deleted: trunk/boost/tti/tti_vm.hpp
==============================================================================
--- trunk/boost/tti/tti_vm.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,12 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#if !defined(TT_INTROSPECTION_VM_HPP)
-#define TT_INTROSPECTION_VM_HPP
-
-#include "vm_has_template_check_params.hpp"
-
-#endif // TT_INTROSPECTION_VM_HPP

Deleted: trunk/boost/tti/vm_has_template_check_params.hpp
==============================================================================
--- trunk/boost/tti/vm_has_template_check_params.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,104 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#if !defined(BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_HPP)
-#define BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_HPP
-
-#if defined(BOOST_TTI_VERSION_1_5)
-
-#include <boost/preprocessor/config/config.hpp>
-
-#if BOOST_PP_VARIADICS
-
-#include <boost/config.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/tti/gen/vm_has_template_check_params_gen.hpp>
-#include <boost/tti/detail/dvm_template_params.hpp>
-
-/*
-
- The succeeding comments in this file are in doxygen format.
-
-*/
-
-/** \file
-*/
-
-/// Expands to a metafunction which tests whether an inner class template with a particular name and signature exists.
-/**
-
- trait = the name of the metafunction within the tti namespace.
-
- name = the name of the inner class template.
-
- ... = variadic macro data which has the class template parameters.
-
- generates a metafunction called "trait" where 'trait' is the macro parameter.
-
- template<class TTI_T>
- struct trait
- {
- static const value = unspecified;
- typedef mpl::bool_<true-or-false> type;
- };
-
- The metafunction types and return:
-
- TTI_T = the enclosing type in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' class template, with the signature
- as defined by the '...' variadic macro data, exists within the enclosing TTI_T type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_VM_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(trait,name,...) \
- BOOST_TTI_DETAIL_VM_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(BOOST_PP_CAT(trait,_detail),name,__VA_ARGS__) \
- template<class TTI_T> \
- struct trait \
- { \
- typedef typename BOOST_PP_CAT(trait,_detail)<TTI_T>::type type; \
- \
- BOOST_STATIC_CONSTANT(bool,value=type::value); \
- }; \
-/**/
-
-/// Expands to a metafunction which tests whether an inner class template with a particular name and signature exists.
-/**
-
- name = the name of the inner class template.
-
- ... = variadic macro data which has the class template parameters.
-
- generates a metafunction called "has_template_check_params_name" where 'name' is the macro parameter.
-
- template<class TTI_T>
- struct has_template_check_params_name
- {
- static const value = unspecified;
- typedef mpl::bool_<true-or-false> type;
- };
-
- The metafunction types and return:
-
- TTI_T = the enclosing type in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' class template, with the signature
- as defined by the '...' variadic macro data, exists within the enclosing TTI_T type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS(name,...) \
- BOOST_TTI_VM_TRAIT_HAS_TEMPLATE_CHECK_PARAMS \
- ( \
- BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_GEN(name), \
- name, \
- __VA_ARGS__ \
- ) \
-/**/
-
-#endif // BOOST_PP_VARIADICS
-#endif // BOOST_TTI_VERSION_1_5
-#endif // BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_HPP

Modified: trunk/libs/tti/doc/tti.qbk
==============================================================================
--- trunk/libs/tti/doc/tti.qbk (original)
+++ trunk/libs/tti/doc/tti.qbk 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -26,10 +26,8 @@
 [include tti_detail_has_template.qbk]
 [include tti_detail_has_member_data.qbk]
 [include tti_detail_has_member_function.qbk]
-[include tti_detail_has_member_function_with_sig.qbk]
 [include tti_detail_has_static_member_data.qbk]
 [include tti_detail_has_static_member_function.qbk]
-[include tti_detail_has_static_member_function_with_sig.qbk]
 [include tti_nested_type.qbk]
 [include tti_nested_type_and_signatures.qbk]
 [include tti_using_mm.qbk]

Modified: trunk/libs/tti/doc/tti_detail.qbk
==============================================================================
--- trunk/libs/tti/doc/tti_detail.qbk (original)
+++ trunk/libs/tti/doc/tti_detail.qbk 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -13,8 +13,8 @@
 'name' of the inner element is used to create the name of the metafunction, and the
 complex one where the first macro parameter, called 'trait', designates
 the name of the metafunction and the second macro parameter designates the 'name' to be
-introspected. Other than that difference, the two forms of the macro produce the exact same
-results.
+introspected. Other than that difference, the two forms of the macro create metafunctions
+which have the exact same functionality.
 
 To use these metafunctions you can include the main general header file 'boost/tti/tti.hpp',
 unless otherwise noted. Alternatively you can include a specific header file as
@@ -30,9 +30,12 @@
 
 In the Template column only the name generated by the simple form
 of the template is given since the name generated by the complex form is always 'trait'
-where 'trait' is the first parameter to the corresponding complex form macro. All of the
-introspecting metafunctions in the table below return a boolean constant called 'value', which
-specifies whether or not the inner element exists.
+where 'trait' is the first parameter to the corresponding complex form macro.
+
+All of the introspecting metafunctions in the table below return a boolean constant
+called 'value', which specifies whether or not the inner element exists. All of the
+metafunctions also have a nested type called 'type', which for each one is the type
+of the boolean constant value. This is always boost::mpl::bool_.
 
 [table:tbmacros TTI Macro Metafunctions
   [
@@ -77,7 +80,7 @@
     
     class T = enclosing type
     
- All of the template parameters must be 'class' ( or 'typename' ) parameters
+ All of the template parameters must be template type parameters ( 'class' or 'typename' parameters )
     ]
     [[headerref boost/tti/has_template.hpp `has_template.hpp`]]
   ]
@@ -91,7 +94,7 @@
     
     class T = enclosing type
     
- All of the template parameters must be 'class' ( or 'typename' ) parameters
+ All of the template parameters must be template type parameters ( 'class' or 'typename' parameters )
     ]
     [[headerref boost/tti/has_template.hpp `has_template.hpp`]]
   ]
@@ -127,48 +130,43 @@
     [
     `has_member_data_'name'`
     
- class T = enclosing type
+ class T = enclosing type
+ OR
+ pointer to member data ( 'MemberData_Type Enclosing_Type::*' )
     
- class R = data type
+ class R = (optional) data type
+ If the first parameter is the pointer to member data this must not be specified.
     ]
     [[headerref boost/tti/has_member_data.hpp `has_member_data.hpp`]]
   ]
   [
- [Member function as individual types]
+ [Member function]
     [
     [macroref BOOST_TTI_HAS_MEMBER_FUNCTION](name)
     ]
     [
     `has_member_function_'name'`
     
- class T = enclosing type
+ class T = enclosing type
+ OR
+ pointer to member function
+ ( 'Return_Type Enclosing_Type::* ( Zero or more comma-separated parameter types )' )
     
- class R = return type
+ class R = (optional) return type if the first parameter is the enclosing type.
+ If the first parameter is the pointer to member function this must not be specified.
     
     class FS = (optional) function parameter types as a Boost MPL forward sequence.
+ If the first parameter is the pointer to member function this must not be specified.
                 If there are no function parameters this does not have to be specified.
                 Defaults to boost::mpl::vector<>.
     
     class TAG = (optional) Boost `function_types` tag type.
+ If the first parameter is the pointer to member function this must not be specified.
                 Defaults to `boost::function_types::null_tag`.
     ]
     [[headerref boost/tti/has_member_function.hpp `has_member_function.hpp`]]
   ]
   [
- [Member function as a composite type]
- [
- [macroref BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG](name)
- ]
- [
- `has_member_function_with_sig_'name'`
-
- class T = pointer to member function
-
- The form for T is 'ReturnType (Class::*)(Zero or more comma-separated parameter types)'
- ]
- [[headerref boost/tti/has_member_function_with_sig.hpp `has_member_function_with_sig.hpp`]]
- ]
- [
     [Static member data]
     [
     [macroref BOOST_TTI_HAS_STATIC_MEMBER_DATA](name)
@@ -183,7 +181,7 @@
     [[headerref boost/tti/has_static_member_data.hpp `has_static_member_data.hpp`]]
   ]
   [
- [Static member function as individual types]
+ [Static member function]
     [
     [macroref BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION](name)
     ]
@@ -192,33 +190,21 @@
     
     class T = enclosing type
     
- class R = return type
+ class R = return type
+ OR
+ function type ( 'Return_Type (Zero or more comma-separated parameter types)' )
     
     class FS = (optional) function parameter types as a Boost MPL forward sequence.
- If there are no function parameters this does not have to be specified.
+ If the second parameter is the function type this must not be specified.
+ If there are no function parameters, this does not have to be specified.
                 Defaults to boost::mpl::vector<>.
     
     class TAG = (optional) Boost `function_types` tag type.
+ If the second parameter is the function type this must not be specified.
                 Defaults to `boost::function_types::null_tag`.
     ]
     [[headerref boost/tti/has_static_member_function.hpp `has_static_member_function.hpp`]]
   ]
- [
- [Static member function as a composite type]
- [
- [macroref BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG](name)
- ]
- [
- `has_static_member_function_with_sig_'name'`
-
- class T = enclosing type
-
- class Type = function type
-
- The form for Type is 'ReturnType (Zero or more comma-separated parameter types)'
- ]
- [[headerref boost/tti/has_static_member_function_with_sig.hpp `has_static_member_function_with_sig.hpp`]]
- ]
 ]
 
 [endsect]

Modified: trunk/libs/tti/doc/tti_detail_has_member_data.qbk
==============================================================================
--- trunk/libs/tti/doc/tti_detail_has_member_data.qbk (original)
+++ trunk/libs/tti/doc/tti_detail_has_member_data.qbk 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -15,14 +15,22 @@
 the programmer wants to check. The macro generates a metafunction
 called 'has_member_data_'name_of_inner_member_data'.
 
-The metafunction can be invoked by passing it the enclosing type
-to introspect and the type of the member data.
+The metafunction can be invoked in two different ways.
+
+The first way is by passing it two parameters. The first parameter
+is the enclosing type to introspect and the second parameter is the
+type of the member data.
+
+The second way is by passing it a single parameter, which is a pointer
+to member type. This type has the form of:
+
+ MemberData_Type Enclosing_Type::*
 
 The metafunction returns a single type called 'type', which is a
 boost::mpl::bool_. As a convenience the metafunction
 returns the value of this type directly as a compile time bool constant
-called 'value'. This is true or false depending on whether the inner
-member data, of the specified type, exists or not.
+called 'value'. This value is true or false depending on whether the
+inner member data, of the specified type, exists or not.
 
 [heading Generating the metafunction]
 
@@ -36,11 +44,17 @@
 [heading Invoking the metafunction]
 
 You invoke the metafunction by instantiating the template with an enclosing
-type to introspect and the type of the member data. A return value called
-'value' is a compile time bool constant.
+type to introspect and the type of the member data, or by instantating the
+template with a pointer to member data type. The return value called 'value'
+is a compile time bool constant telling you whether or not the member data .
+exists.
 
   has_member_data_AMemberData<Enclosing_Type,MemberData_Type>::value
   
+ OR
+
+ has_member_data_AMemberData<MemberData_Type Enclosing_Type::*>::value
+
 [heading Examples]
 
 First we generate metafunctions for various inner member data names:
@@ -71,16 +85,21 @@
 This all happens at compile time, and can be used by
 programmers doing compile time template metaprogramming.
   
+We will show both forms in the following examples.
+Both forms are completely interchangeable as to the result
+desired.
+
  has_member_data_data1<Top,int>::value; // true
  has_member_data_data1<Top,long>::value; // false
+
  has_member_data_data1<Top2,int>::value; // false
- has_member_data_data1<Top2,long>::value; // true
+ has_member_data_data1<long Top2::*>::value; // true
  
- has_member_data_data2<Top,AClass *>::value; // true
+ has_member_data_data2<AClass * Top::*>::value; // true
  has_member_data_data2<Top,int *>::value; // false
  
- has_member_data_data3<Top2,int>::value; // false
- has_member_data_data3<Top2,Top>::value; // true;
+ has_member_data_data3<int Top2::*>::value; // false
+ has_member_data_data3<Top Top2::*>::value; // true;
    
 It should be noticed that once we create our metafunction for
 introspecting an inner member data by name, we can reuse the

Modified: trunk/libs/tti/doc/tti_detail_has_member_function.qbk
==============================================================================
--- trunk/libs/tti/doc/tti_detail_has_member_function.qbk (original)
+++ trunk/libs/tti/doc/tti_detail_has_member_function.qbk 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -15,13 +15,23 @@
 the programmer wants to check. The macro generates a metafunction
 called 'has_member_function_'name_of_inner_member_function'.
 
-The metafunction can be invoked by passing it the enclosing type to
+The metafunction can be invoked in two different ways.
+
+The first way is by passing it the enclosing type to
 introspect and a signature for the member function as separate template
 arguments. The signature for the member function consists of a return
 type, optional parameter types in the form of a boost::mpl forward
 sequence of types, and an optional Boost FunctionTypes tag type. A
 typical boost::mpl forward sequence of types is a boost::mpl::vector<>.
 
+The second way is by passing it a single parameter, which is a pointer
+to member function. This type has the form of:
+
+ Return_Type Enclosing_Type::* ( Parameter_Types )
+
+where the Parameter_Types may be empty, or a comma-separated
+list of parameter types if there are more than one parameter type.
+
 The metafunction returns a single type called 'type', which is a
 boost::mpl::bool_. As a convenience the metafunction
 returns the value of this type directly as a compile time bool constant
@@ -41,7 +51,10 @@
 
 You invoke the metafunction by instantiating the template with an enclosing
 type to introspect and the signature of the member function as a series of template
-parameters. A return value called 'value' is a compile time bool constant.
+parameters. Alternatively you can invoke the metafunction by passing it a single
+type which is a pointer to member function.
+
+A return value called 'value' is a compile time bool constant.
 
   has_member_function_AMemberFunction
     <
@@ -50,7 +63,14 @@
     boost::mpl::vector<MemberFunction_ParameterTypes>, // optional, can be any mpl forward sequence
     boost::function_types::SomeTagType // optional, can be any FunctionTypes tag type
>::value
+
+ OR
   
+ has_member_function_AMemberFunction
+ <
+ MemberFunction_ReturnType Enclosing_Type::* (MemberFunction_ParameterTypes)
+ >::value
+
 [heading Examples]
 
 First we generate metafunctions for various inner member function names:
@@ -81,15 +101,19 @@
 This all happens at compile time, and can be used by
 programmers doing compile time template metaprogramming.
   
+We will show both forms in the following examples.
+Both forms are completely interchangeable as to the result
+desired.
+
  has_member_function_function1<Top,int>::value; // true
  has_member_function_function1<Top,int,boost::mpl::vector<> >::value; // true
  has_member_function_function1<Top2,int>::value; // false
  
- has_member_function_function2<Top,AClass,boost::mpl::vector<double,short *> >::value; // true
- has_member_function_function2<Top2,AClass,boost::mpl::vector<double,short *> >::value; // false
- has_member_function_function2<Top2,long,boost::mpl::vector<Top &,int,bool,short,float> >::value; // true
+ has_member_function_function2<AClass Top::* (double,short *)>::value; // true
+ has_member_function_function2<AClass Top2::* (double,short *)>::value; // false
+ has_member_function_function2<long Top2::* (Top &,int,bool,short,float)>::value; // true
  
- has_member_function_function3<Top2,int>::value; // false
+ has_member_function_function3<int Top2::* ()>::value; // false
  has_member_function_function3<Top2,Top *,boost::mpl::vector<long,int,AClass &> >::value; // true;
    
 It should be noticed that once we create our metafunction for

Deleted: trunk/libs/tti/doc/tti_detail_has_member_function_with_sig.qbk
==============================================================================
--- trunk/libs/tti/doc/tti_detail_has_member_function_with_sig.qbk 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,90 +0,0 @@
-[/
- (C) Copyright Edward Diener 2011
- Use, modification and distribution are subject to the Boost Software License,
- Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-
-[section:tti_detail_has_member_function_sig Introspecting member function using signature]
-
-The TTI macro [macroref BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG] introspects
-a member function of a class using a member function pointer signature.
-
-BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG macro takes a single
-parameter which is the name of an inner member function whose existence
-the programmer wants to check. The macro generates a metafunction
-called 'has_member_function_with_sig_'name_of_inner_member_function'.
-
-The metafunction can be invoked by passing it the enclosing type to
-introspect and a signature for the member function as a member function
-pointer.
-
-The metafunction returns a single type called 'type', which is a
-boost::mpl::bool_. As a convenience the metafunction
-returns the value of this type directly as a compile time bool constant
-called 'value'. This is true or false depending on whether the inner
-member function, of the specified member function pointer signature,
-exists or not.
-
-[heading Generating the metafunction]
-
-You generate the metafunction by invoking the macro with the name
-of an inner member function:
-
- BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG(AMemberFunction)
-
-generates a metafunction called
-'has_member_function_with_sig_AMemberFunction' in the current scope.
-
-[heading Invoking the metafunction]
-
-You invoke the metafunction by instantiating the template with
-an enclosing type to introspect and a type of pointer to member
-function. A return value called 'value' is a compile time bool
-constant.
-
-[heading Examples]
-
-First we generate metafunctions for various inner member function names:
-
- #include <boost/tti/has_member_function_with_sig.hpp>
-
- BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG(function1)
- BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG(function2)
- BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG(function3)
-
-Next let us create some user-defined types we want to introspect.
-
- struct AClass { };
- struct Top
- {
- int function1();
- AClass function2(double,short *);
- };
- struct Top2
- {
- long function2(Top &,int,bool,short,float);
- Top * function3(long,int,AClass &);
- };
-
-Finally we invoke our metafunction and return our value.
-This all happens at compile time, and can be used by
-programmers doing compile time template metaprogramming.
-
- has_member_function_with_sig_function1<int (Top::*)()>::value; // true
- has_member_function_with_sig_function1<int (Top::*)(void)>::value; // true
- has_member_function_with_sig_function1<int (Top2::*)()>::value; // false
-
- has_member_function_with_sig_function2<AClass (Top::*)(double,short *)>::value; // true
- has_member_function_with_sig_function2<AClass (Top2::*)(double,short *)>::value; // false
- has_member_function_with_sig_function2<long (Top2::*)(Top &,int,bool,short,float)>::value; // true
-
- has_member_function_with_sig_function3<int (Top2::*)()>::value; // false
- has_member_function_with_sig_function3<Top * (Top2::*)(long,int,AClass &)>::value; // true;
-
-It should be noticed that once we create our metafunction for
-introspecting an inner member function by name, we can reuse the
-metafunction for introspecting any enclosing user-defined type,
-with any inner member function, for that name.
-
-[endsect]

Modified: trunk/libs/tti/doc/tti_detail_has_static_member_function.qbk
==============================================================================
--- trunk/libs/tti/doc/tti_detail_has_static_member_function.qbk (original)
+++ trunk/libs/tti/doc/tti_detail_has_static_member_function.qbk 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -15,13 +15,24 @@
 the programmer wants to check. The macro generates a metafunction
 called 'has_static_member_function_'name_of_inner_static_member_function'.
 
-The metafunction can be invoked by passing it the enclosing type to
-introspect and a signature for the static member function as separate template
+The metafunction can be invoked in two different ways.
+
+The first way is by passing it the enclosing type to introspect and a
+signature for the static member function as separate template
 arguments. The signature for the static member function consists of a return
 type, optional parameter types in the form of a boost::mpl forward
 sequence of types, and an optional Boost FunctionTypes tag type. A
 typical boost::mpl forward sequence of types is a boost::mpl::vector<>.
 
+The second way is by passing it the enclosing type to introspect and a
+signature for the static member function as a function. The function
+has the form of:
+
+ Return_Type ( Parameter_Types )
+
+where the Parameter_Types may be empty, or a comma-separated
+list of parameter types if there are more than one parameter type.
+
 The metafunction returns a single type called 'type', which is a
 boost::mpl::bool_. As a convenience the metafunction
 returns the value of this type directly as a compile time bool constant
@@ -41,7 +52,10 @@
 
 You invoke the metafunction by instantiating the template with an enclosing
 type to introspect and the signature of the static member function as a series of template
-parameters. A return value called 'value' is a compile time bool constant.
+parameters. Alternatively you can invoke the metafunction by passing it an enclosing type
+and the signature of the static member function as a single function type.
+
+A return value called 'value' is a compile time bool constant.
 
   has_static_member_function_AStaticMemberFunction
     <
@@ -51,6 +65,14 @@
     boost::function_types::SomeTagType // optional, can be any FunctionTypes tag type
>::value
 
+ OR
+
+ has_static_member_function_AStaticMemberFunction
+ <
+ Enclosing_Type,
+ Return_Type ( Parameter_Types )
+ >::value
+
 [heading Examples]
 
 First we generate metafunctions for various inner static member function names:
@@ -79,16 +101,20 @@
 This all happens at compile time, and can be used by
 programmers doing compile time template metaprogramming.
   
+We will show both forms in the following examples.
+Both forms are completely interchangeable as to the result
+desired.
+
  has_static_member_function_function1<Top,int>::value; // true
- has_static_member_function_function1<Top,int,boost::mpl::vector<> >::value; // true
+ has_static_member_function_function1<Top,int ()>::value; // true
  has_static_member_function_function1<Top2,int>::value; // false
  
  has_static_member_function_function2<Top,AClass,boost::mpl::vector<double,short *> >::value; // true
  has_static_member_function_function2<Top2,AClass,boost::mpl::vector<double,short *> >::value; // false
- has_static_member_function_function2<Top2,long,boost::mpl::vector<Top &,int,bool,short,float> >::value; // true
+ has_static_member_function_function2<Top2,long (Top &,int,bool,short,float)>::value; // true
  
- has_static_member_function_function3<Top2,int>::value; // false
- has_static_member_function_function3<Top2,Top *,boost::mpl::vector<long,int,AClass &> >::value; // true;
+ has_static_member_function_function3<Top2,int ()>::value; // false
+ has_static_member_function_function3<Top2,Top * (long,int,AClass &)>::value; // true;
    
 It should be noticed that once we create our metafunction for
 introspecting an inner static member function by name, we can reuse the

Deleted: trunk/libs/tti/doc/tti_detail_has_static_member_function_with_sig.qbk
==============================================================================
--- trunk/libs/tti/doc/tti_detail_has_static_member_function_with_sig.qbk 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,86 +0,0 @@
-[/
- (C) Copyright Edward Diener 2011
- Use, modification and distribution are subject to the Boost Software License,
- Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-
-[section:tti_detail_has_static_member_function_sig Introspecting static member function using signature]
-
-The TTI macro [macroref BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG] introspects
-a static member function of a class using a function signature.
-
-BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG macro takes a single
-parameter which is the name of an inner static member function whose existence
-the programmer wants to check. The macro generates a metafunction
-called 'has_static_member_function_with_sig_'name_of_inner_static_member_function'.
-
-The metafunction can be invoked by passing it the enclosing type to
-introspect and a signature for the static member function as a plain function.
-
-The metafunction returns a single type called 'type', which is a
-boost::mpl::bool_. As a convenience the metafunction
-returns the value of this type directly as a compile time bool constant
-called 'value'. This is true or false depending on whether the inner
-static member function, of the specified function signature, exists or not.
-
-[heading Generating the metafunction]
-
-You generate the metafunction by invoking the macro with the name
-of an inner static member function:
-
- BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG(AStaticMemberFunction)
-
-generates a metafunction called
-'has_static_member_function_with_sig_AStaticMemberFunction' in the current scope.
-
-[heading Invoking the metafunction]
-
-You invoke the metafunction by instantiating the template with
-an enclosing type to introspect and a type as a function signature.
-A return value called 'value' is a compile time bool constant.
-
-[heading Examples]
-
-First we generate metafunctions for various inner member function names:
-
- #include <boost/tti/has_static_member_function_with_sig.hpp>
-
- BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG(function1)
- BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG(function2)
- BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG(function3)
-
-Next let us create some user-defined types we want to introspect.
-
- struct AClass { };
- struct Top
- {
- static int function1();
- static AClass function2(double,short *);
- };
- struct Top2
- {
- static long function2(Top &,int,bool,short,float);
- static Top * function3(long,int,AClass &);
- };
-
-Finally we invoke our metafunction and return our value.
-This all happens at compile time, and can be used by
-programmers doing compile time template metaprogramming.
-
- has_static_member_function_with_sig_function1<Top,int ()>::value; // true
- has_static_member_function_with_sig_function1<Top2,int ()>::value; // false
-
- has_static_member_function_with_sig_function2<Top,AClass (double,short *)>::value; // true
- has_static_member_function_with_sig_function2<Top2,AClass (double,short *)>::value; // false
- has_static_member_function_with_sig_function2<Top2,long (Top &,int,bool,short,float)>::value; // true
-
- has_static_member_function_with_sig_function3<Top2,int ()>::value; // false
- has_static_member_function_with_sig_function3<Top2,Top * (long,int,AClass &)>::value; // true;
-
-It should be noticed that once we create our metafunction for
-introspecting an inner static member function by name, we can reuse the
-metafunction for introspecting any enclosing user-defined type,
-with any inner static member function, for that name.
-
-[endsect]

Modified: trunk/libs/tti/doc/tti_detail_has_template.qbk
==============================================================================
--- trunk/libs/tti/doc/tti_detail_has_template.qbk (original)
+++ trunk/libs/tti/doc/tti_detail_has_template.qbk 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -10,8 +10,8 @@
 [section:tti_detail_has_template_macro Using the BOOST_TTI_HAS_TEMPLATE macro]
 
 The TTI macro [macroref BOOST_TTI_HAS_TEMPLATE] introspects
-an inner class template of a class. The macro must specify
-the name of the class template to introspect.
+an inner class template of a class. The macro must specify,
+at the least, the name of the class template to introspect.
 
 [heading Two forms of introspection]
  
@@ -280,7 +280,9 @@
 It should be noticed that once we create our metafunction for
 introspecting an inner class template by name, we can reuse the
 metafunction for introspecting any enclosing user-defined type
-for that name.
+for that name. However we will be successful or not as long as
+we are introspecting the inner class template for either
+template type parameters or specific parameters each time.
 
 [endsect]
 

Modified: trunk/libs/tti/doc/tti_functionality.qbk
==============================================================================
--- trunk/libs/tti/doc/tti_functionality.qbk (original)
+++ trunk/libs/tti/doc/tti_functionality.qbk 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -42,21 +42,21 @@
 All of the macros start with the prefix `BOOST_TTI_`, create their metafunctions as class
 templates in whatever scope the user invokes the macro, and come in two forms:
 
-# In the simplest macro form, which I call the simple form, the 'name' of the inner element
- is used directly to generate the name
- of the metafunction as well as serving as the 'name' to introspect. In generating the name of
- the metafunction from the macro name, the `BOOST_TTI_` prefix is removed,
- the rest of the macro name is changed to lower case, and an underscore ( '_' ) followed
- by the 'name' is appended. As an example, for the macro `BOOST_TTI_HAS_TYPE(MyType)` the
- name of the metafunction is `has_type_MyType` and it will look for an inner type called 'MyType'.
-# In a more complicated macro form, which I call the complex form, the macro starts with
+# In the simplest macro form, which I call the simple macro form, the 'name' of the inner element
+ is used directly to generate the name of the metafunction as well as serving as the 'name'
+ to introspect. In generating the name of the metafunction from the macro name, the
+ `BOOST_TTI_` prefix is removed, the rest of the macro name is changed to lower case, and an
+ underscore ( '_' ) followed by the 'name' is appended. As an example, for the macro
+ `BOOST_TTI_HAS_TYPE(MyType)` the name of the metafunction is `has_type_MyType` and it will
+ look for an inner type called 'MyType'.
+# In a more complicated macro form, which I call the complex macro form, the macro starts with
   `BOOST_TTI_TRAIT_` and a 'trait' name is passed as the first parameter, with the 'name' of the inner
   element as the second parameter. The 'trait' name serves solely to completely name the metafunction in
   whatever scope the macro is invoked. As an example, for the macro
   `BOOST_TTI_TRAIT_HAS_TYPE(MyTrait,MyType)` the name of
   the metafunction is `MyTrait` and it will look for an inner type called `MyType`.
   
-Every macro metafunction has a simple form and a corresponding complex form.
+Every macro metafunction has a simple macro form and a corresponding complex macro form.
 Once either of these two macro forms are used for a particular type of inner element, the
 corresponding macro metafunction works exactly the same way and has the exact same functionality.
 
@@ -87,7 +87,7 @@
 creating C++ identifiers with double underscores should be avoided by the end-user. When using
 a TTI macro to generate a metafunction using the simple macro form, TTI appends a single
 underscore to the macro name preceding the name of the element that is being introspected.
-The reason for doing this is because Boost discourages as non=portable C++ identifiers with mixed
+The reason for doing this is because Boost discourages as non-portable C++ identifiers with mixed
 case letters and the underscore then becomes the normal way to separate parts of an identifier
 name so that it looks understandable. Because of this decision to use the underscore to generate
 the metafunction name from the macro name, any inner element starting with an underscore will cause
@@ -110,10 +110,9 @@
 
 [heading Reusing the named metafunction]
 
-When the end-user uses the TTI macros to generate a metafunction
-for introspecting an inner element of a particular type, that metafunction can be
-re-used with any combination of valid template parameters which involve the same type of inner
-element of a particular name.
+When the end-user uses the TTI macros to generate a metafunction for introspecting an inner
+element of a particular type, that metafunction can be re-used with any combination of valid
+template parameters which involve the same type of inner element of a particular name.
 
 As one example of this let's consider two different types called
 'AType' and 'BType', for each of which we want to determine whether an inner type called
@@ -170,7 +169,7 @@
 more than one translation unit, which is the case for namespaces and the global scope.
 
 Because of ODR, and the way that the simple macro form metafunction name is directly dependent
-on the inner type of and name of the element being introspected, it is the responsibility of the
+on the inner element and name of the element being introspected, it is the responsibility of the
 programmer using the TTI macros to generate metafunctions to avoid ODR within a module
 ( application or library ). There are a few general methods for doing this:
 

Modified: trunk/libs/tti/doc/tti_introduction.qbk
==============================================================================
--- trunk/libs/tti/doc/tti_introduction.qbk (original)
+++ trunk/libs/tti/doc/tti_introduction.qbk 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -21,12 +21,12 @@
 and because the functionality the library offers is the ability to introspect
 a type about the existence of a specific element within that type.
 
-I use the word "introspect" in a very broad sense here. Normally language
-introspection means initially asking for information to be returned by name,
-which can then further be used to introspect for more specific information.
-In the TTI library one must always know and supply the name, and use the
-functionality provided for the correct type of inner element to find out
-if that particular named entity exists.
+I use the word "introspect" in a very broad sense here. Normally computer
+language introspection means initially asking for information to be returned
+by name, which can then further be used to introspect for more specific
+information. In the TTI library one must always know and supply the name, and
+use the functionality provided for the correct type of inner element to find
+out if that particular named entity exists.
 
 You may prefer the term "query" instead of "introspection" to denote what this
 library does, but I use terminology based on the word "introspect" throughout
@@ -86,26 +86,18 @@
     [[headerref boost/tti/has_member_data.hpp `has_member_data.hpp`]]
   ]
   [
- [Member function as individual types]
+ [Member function]
     [[headerref boost/tti/has_member_function.hpp `has_member_function.hpp`]]
   ]
   [
- [Member function as a composite type]
- [[headerref boost/tti/has_member_function_with_sig.hpp `has_member_function_with_sig.hpp`]]
- ]
- [
     [Static member data]
     [[headerref boost/tti/has_static_member_data.hpp `has_static_member_data.hpp`]]
   ]
   [
- [Static member function as individual types]
+ [Static member function]
     [[headerref boost/tti/has_static_member_function.hpp `has_static_member_function.hpp`]]
   ]
   [
- [Static member function as a composite type]
- [[headerref boost/tti/has_static_member_function_with_sig.hpp `has_static_member_function_with_sig.hpp`]]
- ]
- [
     [Member Type Creation]
     [[headerref boost/tti/member_type.hpp `member_type.hpp`]]
   ]

Deleted: trunk/libs/tti/doc/tti_meta_classes.qbk
==============================================================================
--- trunk/libs/tti/doc/tti_meta_classes.qbk 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,34 +0,0 @@
-[/
- (C) Copyright Edward Diener 2011
- Use, modification and distribution are subject to the Boost Software License,
- Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-
-[section:tti_metaclasses Macro Metafunctions as Metadata]
-
-As specified in the Boost MPL library, there are two ways to pass metafunctions
-as metadata, and both ways fall under the Boost MPL terminology of 'lambda expressions':
-
-* As a metafunction class
-* As a placeholder expression
-
-Using a placeholder expression is the easiest way and does not require the programmer to create
-a metafunction class for passing the metadata. The syntax for this is fairly simple. The syntax
-for passing a macro metafunction becomes `macrometafunction<_>` etc. depending
-on how many parameters are being passed. Thus for two parameters we would have
-`macrometafunction<_,_>` etc., with another placeholder (`_`) added for each subsequent parameter.
-
-The Boost MPL library also provides the high-level primitive 'quote' which
-creates a metafunction class from any n-ary metafunction. The syntax for this
-is also fairly easy. The syntax for passing a macro metafunction as a metafunction
-class becomes `boost::mpl::quote(n)<macrometafunction>' where 'n' depends on the
-actual number of template parameters the macro metafunction has.
-
-As will be seen when we discuss the nullary type metafunctions, each nullary type
-metafunction takes as its first parameter a macro metafunction as metadata in
-the form of a lambda expression. Therefore we can use either a metafunction
-class generated by boost::mpl::quote(n), or a placeholder expression, to
-pass a macro metafunction as metadata to our nullary type metafunctions.
-
-[endsect]

Deleted: trunk/libs/tti/doc/tti_metafunctions.qbk
==============================================================================
--- trunk/libs/tti/doc/tti_metafunctions.qbk 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,311 +0,0 @@
-[/
- (C) Copyright Edward Diener 2011
- Use, modification and distribution are subject to the Boost Software License,
- Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-
-[section:tti_metafunctions Nullary Type Metafunctions]
-
-The macro metafunctions provide a complete set of functionality for
-anything one would like to do using the TTI library. Invoking the
-metafunctions allows the template metaprogrammer to discover whether
-a C++ type has inner elements of a particular name.
-
-What is presented here is a set of named metafunctions,
-in the boost::tti namespace, which offer
-an alternative syntax for using the macro metafunctions. No new
-functionality is involved.
-
-The macro metafunctions, like all metafunctions,
-pass their parameters as types. When passing the
-result of one metafunction as a parameter to another metafunction, one
-is reaching into the first metafunction to access the nested 'type'
-of its instantiated result in order
-to pass it to another metafunction as a parameter. This is common
-metafunction usage, and is the syntax of the macro metafunctions as well.
-
-An alternative use of metafunctions is to pass the instantiated metafunction itself
-as a nullary metafunction, rather than its nested 'type' member, as a parameter to
-another metafunction. This is purely a syntactical advantage of not having to
-manually specify 'typename' and '::type' in order to extract the nested 'type' from the resulting
-nullary metafunction.
-
-This what these named metafunctions do, and therefore they are
-differentiated from the macro metafunctions by the name 'nullary type metafunctions'.
-The nullary type metafunctions reuse the macro metafunctions
-but pass other parameters which are classes as nullary metafunctions.
-While the syntactical advantage over the macro metafunctions is that one does not
-have to use 'typename' and pass the actual '::type' of a resultant metafunction instantiation, the
-disadvantage is that for class types which are not metafunction results one has to
-create a nullary metafunction by wrapping the class type with boost::mpl::identity.
-
-Because the nullary type metafunctions reuse the metafunctions generated by the macro metafunctions,
-the metafunction generated by a particular macro metafunction needs to
-be passed as metadata to a corresponding nullary type metafunction. As explained in Boost
-MPL, a metafunction as metadata is passed as a lambda expression, in the form of a metafunction
-class or a placeholder expression. This lambda expression is passed as the
-first parameter to each of our nullary type metafunctions.
-
-The exceptions to the use of nullary type metafunctions when specifying class 'types' are:
-
-# When a Boost `function_types` tag type, which is optional, is specified as an addition to the
-function signature it is passed as is.
-
-# When specifying a function signature and parameter types being passed,
-the MPL forward sequence which contains the parameter 'types' is passed as is.
-
-Whenever any type is not a class, it can passed to the nullary type metafunctions as is
-or it can be passed as a nullary metafunction by wrapping it with boost::mpl::identity.
-The nullary type metafunctions handle both situations but clearly it is easier to pass
-a known non-class type as is than having to wrap it with boost::mpl::identity.
-
-For nested types, which may or may not exist, we can pass the resulting nullary
-metafunction generated by `BOOST_TTI_MEMBER_TYPE`, rather than its nested ::type, or its equivalent
-nullary type metafunction `boost::tti::mf_member_type` ( explained later ).
-
-To use these metafunctions you need to include the main header file `boost/tti/tti.hpp`,
-unless otherwise noted. Alternatively you can include a specific header as given in the
-table below,
-
-[tip
-The header files <boost/mpl/identity.hpp>, <boost/mpl/placeholders.hpp>, and
-<boost/mpl/quote.hpp> are included by
-the TTI header files whenever you include a general header file or a specific header file
-for a nullary type metafunction.
-Also the header file <boost/mpl/vector.hpp> is
-included by the general header file 'boost/tti/tti.hpp' or the specific header files which
-introspect functions, so if you use an MPL vector as your
-forward sequence wrapper for parameter types, you need not manually include the header file.
-]
-
-A table of the nullary type metafunctions is given, based on the inner element whose
-existence the metaprogrammer is introspecting. The arguments to the nullary type
-metafunctions are the same as those of their equivalent macro metafunction, which is
-passed as the first argument in the form of a Boost MPL lambda expression.
-
-The actual syntax for each nullary type metafunction
-can be found in the reference section,
-and general examples of usage can be found in the
-[link sectti_usingNTM "Using the Nullary Type Metafunctions"] section.
-
-All of the metafunctions are in the top-level 'boost::tti' namespace,
-all have a particular name based on the type of its functionality, and all begin with
-the prefix 'mf_', representing the fact that they are metafunctions and to distinguish
-them from any other constructs created by TTI in the boost::tti namespace.
-
-[table:tbmetafunctions TTI Nullary Type Metafunctions
- [
- [Inner Element]
- [Template]
- [Parameters]
- [Macro Metafunction Passed]
- [Specific Header File]
- ]
- [
- [Type]
- [
- [classref boost::tti::mf_has_type]
- ]
- [
- class HasType = macro metafunction as lambda expression
-
- class T = enclosing type nullary metafunction
- ]
- [`BOOST_TTI_HAS_TYPE`]
- [[headerref boost/tti/mf/mf_has_type.hpp `mf_has_type.hpp`]]
- ]
- [
- [Type with check]
- [
- [classref boost::tti::mf_has_type]
- ]
- [
- class HasType = macro metafunction as lambda expression
-
- class T = enclosing type nullary metafunction
-
- class U = type to check against nullary metafunction
- ]
- [`BOOST_TTI_HAS_TYPE`]
- [[headerref boost/tti/mf/mf_has_type.hpp `mf_has_type.hpp`]]
- ]
- [
- [Class Template]
- [
- [classref boost::tti::mf_has_template]
- ]
- [
- class HasTemplate = macro metafunction as lambda expression
-
- class T = enclosing type nullary metafunction
- ]
- [`BOOST_TTI_HAS_TEMPLATE`]
- [[headerref boost/tti/mf/mf_has_template.hpp `mf_has_template.hpp`]]
- ]
- [
- [Class Template with params]
- [
- [classref boost::tti::mf_has_template_check_params]
- ]
- [
- class HasTemplateCheckParams = macro metafunction as lambda expression
-
- class T = enclosing type nullary metafunction
- ]
- [
- `BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS`
-
- `BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS`
- ]
- [
- [headerref boost/tti/mf/mf_has_template_check_params.hpp `mf_has_template_check_params.hpp`]
- ]
- ]
- [
- [Member data]
- [
- [classref boost::tti::mf_has_member_data]
- ]
- [
- class HasMemberData = macro metafunction as lambda expression
-
- class T = enclosing type nullary metafunction
-
- class R = type of member data nullary Metafunction
- ]
- [`BOOST_TTI_HAS_MEMBER_DATA`]
- [[headerref boost/tti/mf/mf_has_member_data.hpp `mf_has_member_data.hpp`]]
- ]
- [
- [Member function]
- [
- [classref boost::tti::mf_has_member_function]
- ]
- [
- class HasMemberFunction = macro metafunction as lambda expression
-
- class T = enclosing type nullary metafunction
-
- class R = return value nullary metafunction
-
- class FS = (optional) a Boost MPL forward sequence of parameter types as nullary metafunctions.
- The forward sequence as a type is not presented as a nullary metafunction.
- If there are no parameters, this may be omitted.
-
- class TAG = (optional) a Boost `function_types` tag type.
- ]
- [`BOOST_TTI_HAS_MEMBER_FUNCTION`]
- [[headerref boost/tti/mf/mf_has_member_function.hpp `mf_has_member_function.hpp`]]
- ]
- [
- [Static data]
- [
- [classref boost::tti::mf_has_static_member_data]
- ]
- [
- class HasStaticMemberData = macro metafunction as lambda expression
-
- class T = enclosing type nullary metafunction
-
- class R = type of static data nullary metafunction
- ]
- [`BOOST_TTI_HAS_STATIC_MEMBER_DATA`]
- [[headerref boost/tti/mf/mf_has_static_member_data.hpp `mf_has_static_member_data.hpp`]]
- ]
- [
- [Static function]
- [
- [classref boost::tti::mf_has_static_member_function]
- ]
- [
- class HasStaticMemberFunction = macro metafunction as lambda expression
-
- class T = enclosing type nullary metafunction
-
- class R = return value nullary metafunction
-
- class FS = (optional) a Boost MPL forward sequence of parameter types as nullary metafunctions.
- The forward sequence as a type is not presented as a nullary metafunction.
- If there are no parameters, this may be omitted.
-
- class TAG = (optional) a Boost `function_types` tag type.
- ]
- [`BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION`]
- [[headerref boost/tti/mf/mf_has_static_member_function.hpp `mf_has_static_member_function.hpp`]]
- ]
-]
-
-The nullary type metafunctions have no equivalent to the macro metafunctions
-which work with function types in their composite form. These are the macro metafunctions
-generated by the BOOST_TTI_MEMBER_FUNCTION_WITH_SIG and
-BOOST_TTI_STATIC_MEMBER_FUNCTION_WITH_SIG macros. The reason for this is that the
-nullary type metafunctions work with individual types, and the ability to
-pass those individual types as nullary functions when they are class types.
-
-[heading Nullary type metafunction `member_type` equivalent]
-
-Just as there exists the macro `BOOST_TTI_MEMBER_TYPE` for creating
-a macro metafunction which returns a nested type if it exists, else an unspecified
-marker type, there is also the equivalent nullary type metafunction.
-
-[table:tbmetanested TTI Nested Type Nullary Type Metafunction
- [
- [Inner Element]
- [Template]
- [Parameters]
- [Macro Metafunction Passed]
- [Specific Header File]
- ]
- [
- [Type]
- [
- [classref boost::tti::mf_member_type]
- ]
- [
- class MemberType = macro metafunction as lambda expression
-
- class T = enclosing type nullary metafunction
- ]
- [`BOOST_TTI_MEMBER_TYPE`]
- [[headerref boost/tti/mf/mf_member_type.hpp `mf_member_type.hpp`]]
- ]
-]
-
-The difference between the macro metafunction `BOOST_TTI_MEMBER_TYPE` and
-`boost::tti::mf_member_type` is simply that, like the other nullary type metafunctions,
-the latter takes its enclosing type as a nullary metafunction. Both produce the
-exact same result.
-
-[heading Nullary type metafunction `valid_member_type` equivalent]
-
-Also similar to the macro metafunctions, we have an easy way of testing whether or not
-our `boost::tti::mf_member_type` nested type actually exists.
-
-[table:existtbmetanested TTI Nested Type Nullary Type Metafunction Existence
- [
- [Inner Element]
- [Template]
- [Parameters]
- [Specific Header File]
- ]
- [
- [Type]
- [
- [classref boost::tti::mf_valid_member_type]
- ]
- [
- class T = a type as a nullary metafunction
-
- returns = true if the nullary metafunction's inner 'type' exists, false if it does not.
- 'Existence' is determined by whether the type does not equal an unspecified type.
- ]
- [[headerref boost/tti/mf/mf_member_type.hpp `mf_member_type.hpp`]]
- ]
-]
-
-Note the difference here from the equivalent macro metafunction tester `boost::tti::valid_member_type`.
-In the table above the type T is passed as a nullary metafunction holding the actual type,
-where for the macro metafunction equivalent the type T is passed as the actual type being tested.
-
-[endsect]

Modified: trunk/libs/tti/doc/tti_nested_type_and_signatures.qbk
==============================================================================
--- trunk/libs/tti/doc/tti_nested_type_and_signatures.qbk (original)
+++ trunk/libs/tti/doc/tti_nested_type_and_signatures.qbk 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -9,23 +9,27 @@
 
 The strength of `BOOST_TTI_MEMBER_TYPE` to represent a type which may or may not exist, and which
 then can be subsequently used in other macro metafunctions whenever a type is needed as a template
-parameter, without producing a compiler error, should not be underestimated. It is one of the
-reasons why we have two different versions of metafunctions for introspecting a member function or
-static member function of a type.
-
-In the more general case, when using `BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG` and
-`BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG`, the signature for the member function and
-the static member function is a single composite type. This makes for a syntactical notation
-which is natural to specify, but because of the composite type notation we
-can not use the nested type functionality in `BOOST_TTI_MEMBER_TYPE` for potential parts
-of that composite type. If any part of this signature, which specifies a composite of various
-types, is invalid, a compiler time error will occur.
-
-But in the more specific case, when we use `BOOST_TTI_HAS_MEMBER_FUNCTION` and
-`BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION`, the composite types in our signatures are broken down
-into their individual types so that using `BOOST_TTI_MEMBER_TYPE`, if necessary, for any one
-of the individual types will not lead to a compile time error if the type specified does not
-actually exist.
+parameter without producing a compiler error, should not be underestimated. It is one of the
+reasons why we have two different ways of using our generated metafunction when introspecting
+for member data, a member function, or a static member function of an enclosing type.
+
+In the cases where we specify a composite syntax when using `BOOST_TTI_HAS_MEMBER_DATA`,
+`BOOST_TTI_HAS_MEMBER_FUNCTION`, or `BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION`, the signature
+for the member data, member function, or static member function is a single type. For
+`BOOST_TTI_HAS_MEMBER_DATA` the signature is a pointer to member data, for
+`BOOST_TTI_HAS_MEMBER_FUNCTION` the signature is a pointer to a member function, and for
+`BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION` the signature is divided between an enclosing type
+and a function in composite format. This makes for a syntactical notation which is natural
+to specify, but because of the notation we can not use the nested type functionality in
+`BOOST_TTI_MEMBER_TYPE` for potential parts of these composite types. If any part of this
+signature, which specifies a composite of various types, is invalid, a compiler time error
+will occur.
+
+But in the more specific cases, when we use `BOOST_TTI_HAS_MEMBER_DATA`,
+`BOOST_TTI_HAS_MEMBER_FUNCTION`, and `BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION`, our composite
+type in our signatures is broken down into their individual types so that using
+`BOOST_TTI_MEMBER_TYPE` for any one of the individual types will not lead to a compile time
+error if the type specified does not actually exist.
 
 A few examples will suffice.
 
@@ -33,18 +37,18 @@
 nested type of U, we want to find out if type T has a member function whose signature is
 `void aMemberFunction(U::Ntype)`.
 
-First using `BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG` we would code:
+First using `BOOST_TTI_HAS_MEMBER_FUNCTION` using our composite form we would code:
 
- #include <boost/tti/has_member_function_with_sig.hpp>
+ #include <boost/tti/has_member_function.hpp>
  
- BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG(aMemberFunction)
+ BOOST_TTI_HAS_MEMBER_FUNCTION(aMemberFunction)
   
- has_member_function_with_sig_aMemberFunction<void (T::*)(U::Ntype)>::value;
+ has_member_function_aMemberFunction<void (T::*)(U::Ntype)>::value;
  
 If the nested type U::Ntype does not exist, this leads to a compiler error.
 We really want to avoid this situation, so let's try our alternative.
 
-Second using `BOOST_TTI_HAS_MEMBER_FUNCTION` we would code:
+Second using `BOOST_TTI_HAS_MEMBER_FUNCTION` using our specific form we would code:
   
  #include <boost/tti/member_type.hpp>
  #include <boost/tti/has_member_function.hpp>
@@ -64,18 +68,18 @@
 nested type of U. But this time let us look for a static member function
 whose signature is `void aStaticMemberFunction(U::Ntype)`.
 
-First using `BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG` we would code:
+First using `BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION` using our composite form we would code:
 
- #include <boost/tti/has_static_member_function_with_sig.hpp>
+ #include <boost/tti/has_static_member_function.hpp>
  
- BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG(aStaticMemberFunction)
+ BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION(aStaticMemberFunction)
   
- has_static_member_function_with_sig_aStaticMemberFunction<T,void (U::Ntype)>::value;
+ has_static_member_function_aStaticMemberFunction<T,void (U::Ntype)>::value;
  
 Once again if the nested type U::Ntype does not exist, this leads to a compiler error,
 so let's try our alternative.
 
-Second using `BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION` we would code:
+Second using `BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION` using our specific form we would code:
   
  #include <boost/tti/member_type.hpp>
  #include <boost/tti/has_static_member_function.hpp>

Modified: trunk/libs/tti/doc/tti_using_mm.qbk
==============================================================================
--- trunk/libs/tti/doc/tti_using_mm.qbk (original)
+++ trunk/libs/tti/doc/tti_using_mm.qbk 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -1,5 +1,5 @@
 [/
- (C) Copyright Edward Diener 2011
+ (C) Copyright Edward Diener 2011,2012
   Use, modification and distribution are subject to the Boost Software License,
   Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).
@@ -80,7 +80,7 @@
 
  BOOST_TTI_HAS_TYPE(AnIntType)
  
- boost::tti::has_type_AnIntType
+ has_type_AnIntType
    <
    T
>
@@ -89,7 +89,7 @@
 
  BOOST_TTI_HAS_TYPE(BType)
   
- boost::tti::has_type_BType
+ has_type_BType
    <
    T
>
@@ -98,7 +98,7 @@
 
 Does T have a nested typedef called 'AnIntType' whose type is an 'int' ?
 
- boost::tti::has_type_AnIntType
+ has_type_AnIntType
    <
    T,
    int
@@ -111,7 +111,7 @@
 
  BOOST_TTI_HAS_TEMPLATE(AMemberTemplate)
  
- boost::tti::has_template_AMemberTemplate
+ has_template_AMemberTemplate
    <
    T
>
@@ -121,7 +121,7 @@
 Does T have a nested class template called 'MoreParameters' whose template
 parameters are specified exactly ?
 
- BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS(MoreParameters,(class)(class)(int)(short)(class)(template <class)(int> class InnerTemplate)(class))
+ BOOST_TTI_HAS_TEMPLATE(MoreParameters,(class)(class)(int)(short)(class)(template <class)(int> class InnerTemplate)(class))
  
  boost::tti::has_template_check_params_MoreParameters
    <
@@ -139,7 +139,7 @@
 Does T have a nested class template called 'ManyParameters' whose template
 parameters are specified exactly ?
 
- BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS(ManyParameters,class,class,int,class,template <class> class InnerTemplate,class,long)
+ BOOST_TTI_HAS_TEMPLATE(ManyParameters,class,class,int,class,template <class> class InnerTemplate,class,long)
  
  boost::tti::has_template_check_params_ManyParameters
    <
@@ -177,9 +177,8 @@
 Does T have a member function called 'IntFunction' whose type is
 'int (short)' ?
 
- BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG(IntFunction)
-
- boost::tti::has_comp_member_function_IntFunction
+ BOOST_TTI_HAS_MEMBER_FUNCTION(IntFunction)
+ has_member_function_IntFunction
    <
    int (T::*)(short)
>
@@ -190,7 +189,7 @@
 
  BOOST_TTI_HAS_STATIC_MEMBER_DATA(DSMember)
  
- boost::tti::has_static_member_data_DSMember
+ has_static_member_data_DSMember
    <
    T,
    short
@@ -203,7 +202,7 @@
 
  BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION(SIntFunction)
  
- boost::tti::has_static_member_function_SIntFunction
+ has_static_member_function_SIntFunction
    <
    T,
    int,
@@ -215,9 +214,9 @@
 Does T have a static member function called 'SIntFunction' whose type
 is 'int (long,double)' ?
 
- BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG(SIntFunction)
+ BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION(SIntFunction)
  
- boost::tti::has_comp_static_member_function_SIntFunction
+ has_static_member_function_SIntFunction
    <
    T,
    int (long,double)
@@ -232,10 +231,10 @@
  BOOST_TTI_MEMBER_TYPE(CType)
  
  typename
- boost::tti::member_type_CType
+ member_type_CType
    <
    typename
- boost::tti::member_type_BType
+ member_type_BType
      <
      T
>::type
@@ -250,10 +249,10 @@
  BOOST_TTI_MEMBER_TYPE(CType)
  
  typedef typename
- boost::tti::member_type_CType
+ member_type_CType
    <
    typename
- boost::tti::member_type_BType
+ member_type_BType
      <
      T
>::type

Deleted: trunk/libs/tti/doc/tti_using_ntm.qbk
==============================================================================
--- trunk/libs/tti/doc/tti_using_ntm.qbk 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,275 +0,0 @@
-[/
- (C) Copyright Edward Diener 2011
- Use, modification and distribution are subject to the Boost Software License,
- Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt).
-]
-
-[section:tti_usingNTM Using the Nullary Type Metafunctions]
-[#sectti_usingNTM]
-
-Using the nullary type metafunctions can be illustrated by first creating some hypothetical
-user-defined type with corresponding nested types and other inner elements.
-This user-defined type will be weighted toward showing deeply nested types and elements within
-those nested types. With this type we can illustrate the use of the nullary type metafunctions. This is
-just meant to serve as a model for what a type T might entail from within
-a class or function template.
-
- // An enclosing type
-
- struct T
- {
-
- // Type
-
- struct BType // as a nested type
- {
-
- // Template
-
- template <class,class,int,class,template <class> class InnerTemplate,class,long> struct ManyParameters { };
-
- // Type
-
- struct CType // as a further nested type
- {
-
- // Template
-
- template <class> struct AMemberTemplate { };
-
- // Type
-
- struct DType // as a futher nested type
- {
-
- // Type
-
- typedef double ADoubleType;
-
- // Template
-
- template <class,class,int,short,class,template <class,int> class InnerTemplate,class> struct MoreParameters { };
-
- // Function
-
- int IntFunction(short) const { return 0; }
-
- // Static Data
-
- static short DSMember;
-
- // Static Function
-
- static int SIntFunction(long,double) { return 2; }
-
- };
- };
- };
-
- // Data
-
- BType IntBT;
-
- };
-
-I will be using the type above just to illustrate the sort of
-metaprogramming questions we can ask of some type T which is passed
-to the template programmer in a class template. Here is what the
-class template might look like:
-
- #include <boost/tti/tti.hpp>
-
- template<class T>
- struct OurTemplateClass
- {
-
- // compile-time template code regarding T
-
- };
-
-Now let us create and invoke the nested metafunctions for each of our inner element types,
-to see if type T above corresponds to our hypothetical type above. Imagine this being
-within 'OurTemplateClass' above. In the examples below the same macro is invoked just once
-to avoid ODR violations.
-
-I will also be mixing the way the macro metafunction metadata is passed to our
-nullary type metafunctions, whether as a metafunction class or as a placeholder
-expression. Both will work just fine since our nullary type metafunctions work
-with any lambda expression as the first template parameter.
-
-[heading Member type]
-
-We start off by creating typedef's, as nullary metafunctions, for our
-theoretical inner types in relation to T . None of these typedefs
-will produce a compiler error even if our structure does not correspond
-to T's reality. This also illustrates using 'boost::tti::mf_member_type'.
-
- BOOST_TTI_MEMBER_TYPE(BType)
- BOOST_TTI_MEMBER_TYPE(CType)
- BOOST_TTI_MEMBER_TYPE(DType)
-
- typedef
- boost::tti::mf_member_type
- <
- member_type_BType<_>,
- boost::mpl::identity<T>
- >
- BTypeNM;
-
- typedef
- boost::tti::mf_member_type
- <
- member_type_CType<_>,
- BTypeNM
- >
- CTypeNM;
-
- typedef
- boost::tti::mf_member_type
- <
- member_type_DType<_>,
- CTypeNM
- >
- DTypeNM;
-
-We will use these typedefs in the ensuing examples.
-
-[heading Type]
-
-Does T have a nested type called 'DType' within 'BType::CType' ?
-
- BOOST_TTI_HAS_TYPE(DType)
-
- boost::tti::mf_has_type
- <
- has_type_DType<_>,
- CTypeNM
- >
-
-We could just have easily used the `boost::tti::mf_valid_member_type`
-metafunction to the same effect:
-
- boost::tti::mf_valid_member_type
- <
- DTypeNM
- >
-
-[heading Type checking the typedef]
-
-Does T have a nested typedef called 'ADoubleType'
-within 'BType::CType::DType' whose type is a 'double' ?
-
- BOOST_TTI_HAS_TYPE(ADoubleType)
-
- boost::tti::mf_has_type
- <
- has_type_ADoubleType<_>,
- DTypeNM,
- double
- >
-
-[heading Template]
-
-Does T have a nested class template called 'AMemberTemplate'
-within 'BType::CType' whose template parameters are all types ('class' or 'typename') ?
-
- BOOST_TTI_HAS_TEMPLATE(AMemberTemplate)
-
- boost::tti::mf_has_template
- <
- has_template_AMemberTemplate<_>,
- CTypeNM
- >
-
-[heading Template with params]
-
-Does T have a nested class template called 'ManyParameters'
-within 'BType' whose template parameters are specified exactly ?
-
- BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS(ManyParameters,(class)(class)(int)(class)(template <class> class InnerTemplate)(class)(long))
-
- boost::tti::mf_has_template_check_params
- <
- has_template_check_params_ManyParameters<_>,
- BTypeNM
- >
-
-[heading Template with params using variadic macros]
-
-Does T have a nested class template called 'MoreParameters'
-within 'BType::CType' whose template parameters are specified exactly ?
-
-[
-note Include the `boost/tti/tti_vm.hpp` general header file, or the
-`boost/tti/vm_has_template_check_params.hpp` specific header file,
-when using this macro.
-]
-
- BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS(MoreParameters,class,class,int,short,class,template <class,int> class InnerTemplate,class)
-
- boost::tti::mf_has_template_check_params
- <
- has_template_check_params_MoreParameters<_>,
- CTypeNM
- >
-
-[heading Member data]
-
-Does T have a member data called 'IntBT' whose type is 'BType' ?
-
- BOOST_TTI_HAS_MEMBER_DATA(IntBT)
-
- boost::tti::mf_has_member_data
- <
- has_member_data_IntBT<_,_>,
- boost::mpl::identity<T>,
- BTypeNM
- >
-
-[heading Member function]
-
-Does T have a member function called 'IntFunction'
-within 'BType::CType::DType' whose type is 'int (short) const' ?
-
- BOOST_TTI_HAS_MEMBER_FUNCTION(IntFunction)
-
- boost::tti::mf_has_member_function
- <
- has_member_function_IntFunction<_,_,_,_>,
- DTypeNM,
- int,
- boost::mpl::vector<short>,
- boost::function_types::const_qualified
- >
-
-[heading Static member data]
-
-Does T have a static member data called 'DSMember'
-within 'BType::CType::DType' whose type is 'short' ?
-
- BOOST_TTI_HAS_STATIC_MEMBER_DATA(DSMember)
-
- boost::tti::mf_has_static_member_data
- <
- has_static_member_data_DSMember<_._>,
- DTypeNM,
- short
- >
-
-[heading Static member function]
-
-Does T have a static member function called 'SIntFunction'
-within 'BType::CType::DType' whose type is 'int (long,double)' ?
-
- BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION(SIntFunction)
-
- boost::tti::mf_has_static_member_function
- <
- has_static_member_function_SIntFunction<_,_,_>,
- DTypeNM,
- int,
- boost::mpl::vector<long,double>
- >
-
-[endsect]

Modified: trunk/libs/tti/test/Jamfile.v2
==============================================================================
--- trunk/libs/tti/test/Jamfile.v2 (original)
+++ trunk/libs/tti/test/Jamfile.v2 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -19,6 +19,9 @@
                                  <toolset>gcc-4.6.0:<cxxflags>-Wno-variadic-macros
                                  ;
                                  
+#
+# Member functions composite syntax
+#
 alias ttimfsig
     :
         [ run test_has_member.cpp ]
@@ -27,6 +30,9 @@
         [ compile-fail test_has_member_fail2.cpp ]
     ;
 
+#
+# Member data
+#
 alias ttimd
     :
         [ run test_has_mem_data.cpp ]
@@ -37,14 +43,20 @@
         [ compile-fail test_has_mem_data_fail3.cpp ]
     ;
 
+#
+# Member functions specific syntax
+#
 alias ttimfn
     :
- [ run test_has_mem_fun.cpp : : : <toolset>gcc-4.6.0:<cxxflags>-std=c++0x ]
+ [ run test_has_mem_fun.cpp ]
         [ compile test_has_mem_fun_compile.cpp ]
         [ compile-fail test_has_mem_fun_fail.cpp ]
         [ compile-fail test_has_mem_fun_fail2.cpp ]
     ;
 
+#
+# Static member functions composite syntax
+#
 alias ttismfsig
     :
         [ run test_has_static_member.cpp ]
@@ -53,6 +65,9 @@
         [ compile-fail test_has_static_member_fail2.cpp ]
     ;
 
+#
+# Static member data
+#
 alias ttismd
     :
         [ run test_has_static_mem_data.cpp ]
@@ -62,7 +77,10 @@
         [ compile-fail test_has_static_mem_data_fail3.cpp ]
     ;
 
-alias ttismf
+#
+# Static member functions
+#
+alias ttismfn
     :
         [ run test_has_static_mem_fun.cpp ]
         [ compile test_has_static_mem_fun_compile.cpp ]
@@ -70,6 +88,9 @@
         [ compile-fail test_has_static_mem_fun_fail2.cpp ]
     ;
 
+#
+# Templates
+#
 alias ttitmp
     :
         [ run test_has_template.cpp : : : <define>BOOST_PP_VARIADICS=0 ]
@@ -80,6 +101,51 @@
         [ compile-fail test_has_template_fail4.cpp : <define>BOOST_PP_VARIADICS=0 ]
     ;
 
+#
+# Templates, check params
+#
+alias ttitmpcp
+ :
+ [ run test_has_template_cp.cpp : : : <define>BOOST_PP_VARIADICS=0 ]
+ [ compile test_has_template_cp_compile.cpp : <define>BOOST_PP_VARIADICS=0 ]
+ [ compile-fail test_has_template_cp_fail.cpp : <define>BOOST_PP_VARIADICS=0 ]
+ [ compile-fail test_has_template_cp_fail2.cpp : <define>BOOST_PP_VARIADICS=0 ]
+ [ compile-fail test_has_template_cp_fail3.cpp : <define>BOOST_PP_VARIADICS=0 ]
+ [ compile-fail test_has_template_cp_fail4.cpp : <define>BOOST_PP_VARIADICS=0 ]
+ ;
+
+#
+# Type
+#
+alias ttity
+ :
+ [ run test_has_type.cpp ]
+ [ compile test_has_type_compile.cpp ]
+ [ compile-fail test_has_type_fail.cpp ]
+ [ compile-fail test_has_type_fail2.cpp ]
+ [ compile-fail test_has_type_fail3.cpp ]
+ [ run test_has_type_ct.cpp ]
+ [ compile test_has_type_ct_compile.cpp ]
+ [ compile-fail test_has_type_ct_fail.cpp ]
+ [ compile-fail test_has_type_ct_fail2.cpp ]
+ [ compile-fail test_has_type_ct_fail3.cpp ]
+ [ compile-fail test_has_type_ct_fail4.cpp ]
+ [ compile-fail test_has_type_ct_fail5.cpp ]
+ ;
+
+#
+# Nested type
+#
+alias ttimemty
+ :
+ [ run test_mem_type.cpp ]
+ [ compile test_mem_type_compile.cpp ]
+ ;
+#
+# All of tti, non-variadic macros
+#
+alias tti : ttimfsig ttimd ttimfn ttismfsig ttismd ttismfn ttitmp ttitmpcp ttity ttimemty ;
+
 alias ttitmpv : :
         <toolset>gcc
         <toolset-gcc:version>3.4.2
@@ -90,6 +156,9 @@
         <toolset-gcc:version>3.4.5
     ;
     
+#
+# Templates, variadic macro
+#
 alias ttitmpv
     :
         [ run test_has_template.cpp : : :
@@ -154,16 +223,6 @@
           test_has_template_fail4_v ]
     ;
 
-alias ttitmpcp
- :
- [ run test_has_template_cp.cpp : : : <define>BOOST_PP_VARIADICS=0 ]
- [ compile test_has_template_cp_compile.cpp : <define>BOOST_PP_VARIADICS=0 ]
- [ compile-fail test_has_template_cp_fail.cpp : <define>BOOST_PP_VARIADICS=0 ]
- [ compile-fail test_has_template_cp_fail2.cpp : <define>BOOST_PP_VARIADICS=0 ]
- [ compile-fail test_has_template_cp_fail3.cpp : <define>BOOST_PP_VARIADICS=0 ]
- [ compile-fail test_has_template_cp_fail4.cpp : <define>BOOST_PP_VARIADICS=0 ]
- ;
-
 alias ttitmpcpv : :
         <toolset>gcc
         <toolset-gcc:version>3.4.2
@@ -174,6 +233,9 @@
         <toolset-gcc:version>3.4.5
     ;
     
+#
+# Templates, variadic macro, check params, non-variadic syntax
+#
 alias ttitmpcpv
     :
         [ run test_has_template_cp.cpp : : :
@@ -238,42 +300,20 @@
           test_has_template_cp_fail4_v ]
     ;
     
-alias ttity
- :
- [ run test_has_type.cpp ]
- [ compile test_has_type_compile.cpp ]
- [ compile-fail test_has_type_fail.cpp ]
- [ compile-fail test_has_type_fail2.cpp ]
- [ compile-fail test_has_type_fail3.cpp ]
- [ run test_has_type_ct.cpp ]
- [ compile test_has_type_ct_compile.cpp ]
- [ compile-fail test_has_type_ct_fail.cpp ]
- [ compile-fail test_has_type_ct_fail2.cpp ]
- [ compile-fail test_has_type_ct_fail3.cpp ]
- [ compile-fail test_has_type_ct_fail4.cpp ]
- [ compile-fail test_has_type_ct_fail5.cpp ]
- ;
-
-alias ttimemty
- :
- [ run test_mem_type.cpp ]
- [ compile test_mem_type_compile.cpp ]
- ;
-
-
-alias tti : ttimfsig ttimd ttimfn ttismfsig ttismd ttismf ttitmp ttitmpcp ttity ttimemty ;
-
-alias ttivm : :
+alias ttitmpcpvm : :
         <toolset>gcc
         <toolset-gcc:version>3.4.2
     ;
     
-alias ttivm : :
+alias ttitmpcpvm : :
         <toolset>gcc
         <toolset-gcc:version>3.4.5
     ;
     
-alias ttivm
+#
+# Templates, variadic macro, check params, variadic syntax
+#
+alias ttitmpcpvm
     :
         [ run test_vm_has_template_cp.cpp : : :
           <toolset>gcc-4.3.0:<cxxflags>-std=c++0x
@@ -331,103 +371,17 @@
           <define>BOOST_PP_VARIADICS=1 ]
     ;
     
+#
+# Templates, non-variadic macro
+#
 alias ttitemplate : ttitmp ttitmpcp ;
 
-alias ttitemplate_vm : ttitmpv ttitmpcpv ttivm ;
-
-alias ttitemplate_all : ttitemplate ttitemplate_vm ;
-
-alias ttimf
- :
- [ run test_mf_has_mem_data.cpp ]
- [ compile test_mf_has_mem_data_compile.cpp ]
- [ compile-fail test_mf_has_mem_data_fail.cpp ]
- [ compile-fail test_mf_has_mem_data_fail2.cpp ]
- [ compile-fail test_mf_has_mem_data_fail3.cpp ]
- [ run test_mf_has_mem_fun.cpp ]
- [ compile test_mf_has_mem_fun_compile.cpp ]
- [ compile-fail test_mf_has_mem_fun_fail.cpp ]
- [ compile-fail test_mf_has_mem_fun_fail2.cpp ]
- [ compile-fail test_mf_has_mem_fun_fail3.cpp ]
- [ run test_mf_has_static_data.cpp ]
- [ compile test_mf_has_static_data_compile.cpp ]
- [ compile-fail test_mf_has_static_data_fail.cpp ]
- [ compile-fail test_mf_has_static_data_fail2.cpp ]
- [ compile-fail test_mf_has_static_data_fail3.cpp ]
- [ run test_mf_has_static_fun.cpp ]
- [ compile test_mf_has_static_fun_compile.cpp ]
- [ compile-fail test_mf_has_static_fun_fail.cpp ]
- [ compile-fail test_mf_has_static_fun_fail2.cpp ]
- [ compile-fail test_mf_has_static_fun_fail3.cpp ]
- [ run test_mf_has_template.cpp ]
- [ compile test_mf_has_template_compile.cpp ]
- [ compile-fail test_mf_has_template_fail.cpp ]
- [ compile-fail test_mf_has_template_fail2.cpp ]
- [ compile-fail test_mf_has_template_fail3.cpp ]
- [ compile-fail test_mf_has_template_fail4.cpp ]
- [ run test_mf_has_template_cp.cpp ]
- [ compile test_mf_has_template_cp_compile.cpp ]
- [ compile-fail test_mf_has_template_cp_fail.cpp ]
- [ compile-fail test_mf_has_template_cp_fail2.cpp ]
- [ compile-fail test_mf_has_template_cp_fail3.cpp ]
- [ run test_mf_has_type.cpp ]
- [ compile test_mf_has_type_compile.cpp ]
- [ compile-fail test_mf_has_type_fail.cpp ]
- [ compile-fail test_mf_has_type_fail2.cpp ]
- [ run test_mf_has_type_ct.cpp ]
- [ compile test_mf_has_type_ct_compile.cpp ]
- [ compile-fail test_mf_has_type_ct_fail.cpp ]
- [ compile-fail test_mf_has_type_ct_fail2.cpp ]
- [ compile-fail test_mf_has_type_ct_fail3.cpp ]
- [ run test_mf_mem_type.cpp ]
- [ compile test_mf_mem_type_compile.cpp ]
- ;
-
-alias ttivmmf
- :
- [ run test_vm_mf_has_template_cp.cpp : : :
- <toolset>gcc-4.3.0:<cxxflags>-std=c++0x
- <toolset>gcc-4.3.0:<cxxflags>-U__STRICT_ANSI__
- <toolset>gcc-4.4.0:<cxxflags>-std=c++0x
- <toolset>gcc-4.4.0:<cxxflags>-U__STRICT_ANSI__
- <toolset>gcc-4.5.0:<cxxflags>-std=c++0x
- <toolset>gcc-4.5.2:<cxxflags>-std=c++0x
- <toolset>gcc-4.6.0:<cxxflags>-std=c++0x
- <define>BOOST_PP_VARIADICS=1 ]
- [ compile test_vm_mf_has_template_cp_compile.cpp :
- <toolset>gcc-4.3.0:<cxxflags>-std=c++0x
- <toolset>gcc-4.3.0:<cxxflags>-U__STRICT_ANSI__
- <toolset>gcc-4.4.0:<cxxflags>-std=c++0x
- <toolset>gcc-4.4.0:<cxxflags>-U__STRICT_ANSI__
- <toolset>gcc-4.5.0:<cxxflags>-std=c++0x
- <toolset>gcc-4.5.2:<cxxflags>-std=c++0x
- <toolset>gcc-4.6.0:<cxxflags>-std=c++0x
- <define>BOOST_PP_VARIADICS=1 ]
- [ compile-fail test_vm_mf_has_template_cp_fail.cpp :
- <toolset>gcc-4.3.0:<cxxflags>-std=c++0x
- <toolset>gcc-4.3.0:<cxxflags>-U__STRICT_ANSI__
- <toolset>gcc-4.4.0:<cxxflags>-std=c++0x
- <toolset>gcc-4.4.0:<cxxflags>-U__STRICT_ANSI__
- <toolset>gcc-4.5.0:<cxxflags>-std=c++0x
- <toolset>gcc-4.5.2:<cxxflags>-std=c++0x
- <toolset>gcc-4.6.0:<cxxflags>-std=c++0x
- <define>BOOST_PP_VARIADICS=1 ]
- [ compile-fail test_vm_mf_has_template_cp_fail2.cpp :
- <toolset>gcc-4.3.0:<cxxflags>-std=c++0x
- <toolset>gcc-4.3.0:<cxxflags>-U__STRICT_ANSI__
- <toolset>gcc-4.4.0:<cxxflags>-std=c++0x
- <toolset>gcc-4.4.0:<cxxflags>-U__STRICT_ANSI__
- <toolset>gcc-4.5.0:<cxxflags>-std=c++0x
- <toolset>gcc-4.5.2:<cxxflags>-std=c++0x
- <toolset>gcc-4.6.0:<cxxflags>-std=c++0x
- <define>BOOST_PP_VARIADICS=1 ]
- [ compile-fail test_vm_mf_has_template_cp_fail3.cpp :
- <toolset>gcc-4.3.0:<cxxflags>-std=c++0x
- <toolset>gcc-4.3.0:<cxxflags>-U__STRICT_ANSI__
- <toolset>gcc-4.4.0:<cxxflags>-std=c++0x
- <toolset>gcc-4.4.0:<cxxflags>-U__STRICT_ANSI__
- <toolset>gcc-4.5.0:<cxxflags>-std=c++0x
- <toolset>gcc-4.5.2:<cxxflags>-std=c++0x
- <toolset>gcc-4.6.0:<cxxflags>-std=c++0x
- <define>BOOST_PP_VARIADICS=1 ]
- ;
+#
+# Templates, variadic macro
+#
+alias ttivm : ttitmpv ttitmpcpv ttitmpcpvm ;
+
+#
+# All templates
+#
+alias ttitemplate_all : ttitemplate ttivm ;

Modified: trunk/libs/tti/test/test_has_member.cpp
==============================================================================
--- trunk/libs/tti/test/test_has_member.cpp (original)
+++ trunk/libs/tti/test/test_has_member.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -10,13 +10,13 @@
 int main()
   {
   
- BOOST_TEST(BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG_GEN(VoidFunction)<void (AType::*)()>::value);
+ BOOST_TEST((BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(VoidFunction)<void (AType::*)()>::value));
   BOOST_TEST(FunctionReturningInt<int (AType::*)()>::value);
   BOOST_TEST(FunctionReturningInt<double (AnotherType::*)(int)>::value);
- BOOST_TEST(BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG_GEN(aFunction)<AType (AnotherType::*)(int)>::value);
+ BOOST_TEST(BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(aFunction)<AType (AnotherType::*)(int)>::value);
   BOOST_TEST(AnotherIntFunction<int (AnotherType::*)(AType)>::value);
- BOOST_TEST(BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG_GEN(sFunction)<AType::AnIntType (AnotherType::*)(int,long,double)>::value);
- BOOST_TEST(!BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG_GEN(someFunctionMember)<AType (AnotherType::*)(long,int)>::value);
+ BOOST_TEST(BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(sFunction)<AType::AnIntType (AnotherType::*)(int,long,double)>::value);
+ BOOST_TEST(!BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(someFunctionMember)<AType (AnotherType::*)(long,int)>::value);
   
   return boost::report_errors();
 

Modified: trunk/libs/tti/test/test_has_member.hpp
==============================================================================
--- trunk/libs/tti/test/test_has_member.hpp (original)
+++ trunk/libs/tti/test/test_has_member.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -8,13 +8,13 @@
 #define TEST_HAS_MEMBER_HPP
 
 #include "test_structs.hpp"
-#include <boost/tti/has_member_function_with_sig.hpp>
+#include <boost/tti/has_member_function.hpp>
 
-BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG(VoidFunction)
-BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_WITH_SIG(FunctionReturningInt,IntFunction)
-BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG(aFunction)
-BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION_WITH_SIG(AnotherIntFunction,anotherFunction)
-BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG(sFunction)
-BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG(someFunctionMember)
+BOOST_TTI_HAS_MEMBER_FUNCTION(VoidFunction)
+BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION(FunctionReturningInt,IntFunction)
+BOOST_TTI_HAS_MEMBER_FUNCTION(aFunction)
+BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION(AnotherIntFunction,anotherFunction)
+BOOST_TTI_HAS_MEMBER_FUNCTION(sFunction)
+BOOST_TTI_HAS_MEMBER_FUNCTION(someFunctionMember)
 
 #endif // TEST_HAS_MEMBER_HPP

Modified: trunk/libs/tti/test/test_has_member_compile.cpp
==============================================================================
--- trunk/libs/tti/test/test_has_member_compile.cpp (original)
+++ trunk/libs/tti/test/test_has_member_compile.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -12,16 +12,16 @@
   
   // You can always instantiate without compiler errors
   
- BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG_GEN(someFunctionMember)<double (AnotherType::*)(short,short,long,int)> aVar3;
+ BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(someFunctionMember)<double (AnotherType::*)(short,short,long,int)> aVar3;
   
   // Compile time asserts
   
- BOOST_MPL_ASSERT((BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG_GEN(VoidFunction)<void (AType::*)()>));
+ BOOST_MPL_ASSERT((BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(VoidFunction)<void (AType::*)()>));
   BOOST_MPL_ASSERT((FunctionReturningInt<int (AType::*)()>));
   BOOST_MPL_ASSERT((FunctionReturningInt<double (AnotherType::*)(int)>));
- BOOST_MPL_ASSERT((BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG_GEN(aFunction)<AType (AnotherType::*)(int)>));
+ BOOST_MPL_ASSERT((BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(aFunction)<AType (AnotherType::*)(int)>));
   BOOST_MPL_ASSERT((AnotherIntFunction<int (AnotherType::*)(AType)>));
- BOOST_MPL_ASSERT((BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG_GEN(sFunction)<AType::AnIntType (AnotherType::*)(int,long,double)>));
+ BOOST_MPL_ASSERT((BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(sFunction)<AType::AnIntType (AnotherType::*)(int,long,double)>));
   
   return 0;
 

Modified: trunk/libs/tti/test/test_has_member_fail.cpp
==============================================================================
--- trunk/libs/tti/test/test_has_member_fail.cpp (original)
+++ trunk/libs/tti/test/test_has_member_fail.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -12,7 +12,7 @@
   
   // Wrong function signature for sFunction
   
- BOOST_MPL_ASSERT(( BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG_GEN(sFunction)<AType::AnIntType (AnotherType::*)(short,long,double)> ));
+ BOOST_MPL_ASSERT(( BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(sFunction)<AType::AnIntType (AnotherType::*)(short,long,double)> ));
   
   return 0;
 

Modified: trunk/libs/tti/test/test_has_member_fail2.cpp
==============================================================================
--- trunk/libs/tti/test/test_has_member_fail2.cpp (original)
+++ trunk/libs/tti/test/test_has_member_fail2.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -11,7 +11,7 @@
   
   // Function signature has type which does not exist
   
- BOOST_TTI_HAS_MEMBER_FUNCTION_WITH_SIG_GEN(sFunction)<AType::AnIntType (NVType::*)(short,long,double)> aVar;
+ BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(sFunction)<AType::AnIntType (NVType::*)(short,long,double)> aVar;
   
   return 0;
 

Modified: trunk/libs/tti/test/test_has_static_member.cpp
==============================================================================
--- trunk/libs/tti/test/test_has_static_member.cpp (original)
+++ trunk/libs/tti/test/test_has_static_member.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -13,7 +13,7 @@
   BOOST_TEST((HaveTheSIntFunction<AType,int (long,double)>::value));
   BOOST_TEST((!TheTIntFunction<AType,AType (long,double)>::value));
   BOOST_TEST((TheTIntFunction<AnotherType,AType (long,double)>::value));
- BOOST_TEST((BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG_GEN(TSFunction)<AnotherType,AType::AStructType (AType::AnIntType,double)>::value));
+ BOOST_TEST((BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_GEN(TSFunction)<AnotherType,AType::AStructType (AType::AnIntType,double)>::value));
   BOOST_TEST((!Pickedname<AnotherType,void ()>::value));
   
   return boost::report_errors();

Modified: trunk/libs/tti/test/test_has_static_member.hpp
==============================================================================
--- trunk/libs/tti/test/test_has_static_member.hpp (original)
+++ trunk/libs/tti/test/test_has_static_member.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -8,11 +8,11 @@
 #define TEST_HAS_STATIC_MEMBER_HPP
 
 #include "test_structs.hpp"
-#include <boost/tti/has_static_member_function_with_sig.hpp>
+#include <boost/tti/has_static_member_function.hpp>
 
-BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG(HaveTheSIntFunction,SIntFunction)
-BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG(TheTIntFunction,TIntFunction)
-BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG(TSFunction)
-BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG(Pickedname,SomeStaticFunction)
+BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION(HaveTheSIntFunction,SIntFunction)
+BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION(TheTIntFunction,TIntFunction)
+BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION(TSFunction)
+BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION(Pickedname,SomeStaticFunction)
 
 #endif // TEST_HAS_STATIC_MEMBER_HPP

Modified: trunk/libs/tti/test/test_has_static_member_compile.cpp
==============================================================================
--- trunk/libs/tti/test/test_has_static_member_compile.cpp (original)
+++ trunk/libs/tti/test/test_has_static_member_compile.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -19,7 +19,7 @@
   
   BOOST_MPL_ASSERT((HaveTheSIntFunction<AType,int (long,double)>));
   BOOST_MPL_ASSERT((TheTIntFunction<AnotherType,AType (long,double)>));
- BOOST_MPL_ASSERT((BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG_GEN(TSFunction)<AnotherType,AType::AStructType (AType::AnIntType,double)>));
+ BOOST_MPL_ASSERT((BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_GEN(TSFunction)<AnotherType,AType::AStructType (AType::AnIntType,double)>));
   
   return 0;
 

Modified: trunk/libs/tti/test/test_has_static_member_fail2.cpp
==============================================================================
--- trunk/libs/tti/test/test_has_static_member_fail2.cpp (original)
+++ trunk/libs/tti/test/test_has_static_member_fail2.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -11,7 +11,7 @@
   
   // Function signature has type which does not exist
   
- BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_WITH_SIG_GEN(TSFunction)<AnotherType,AType::AClassType (AType::AnIntType,double)> aVar;
+ BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_GEN(TSFunction)<AnotherType,AType::AClassType (AType::AnIntType,double)> aVar;
   
   return 0;
 

Modified: trunk/libs/tti/test/test_has_template.hpp
==============================================================================
--- trunk/libs/tti/test/test_has_template.hpp (original)
+++ trunk/libs/tti/test/test_has_template.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -10,8 +10,6 @@
 #include "test_structs.hpp"
 #include <boost/tti/has_template.hpp>
 
-#if !defined(BOOST_TTI_VERSION_1_5)
-
 #if BOOST_PP_VARIADICS
 
 BOOST_TTI_HAS_TEMPLATE(ATPMemberTemplate)
@@ -36,17 +34,4 @@
 
 #endif // BOOST_PP_VARIADICS
 
-#else // BOOST_TTI_VERSION_1_5
-
-BOOST_TTI_HAS_TEMPLATE(ATPMemberTemplate)
-BOOST_TTI_TRAIT_HAS_TEMPLATE(HaveCL,CLMemberTemplate)
-BOOST_TTI_HAS_TEMPLATE(AMemberTemplate)
-BOOST_TTI_TRAIT_HAS_TEMPLATE(HaveAnotherMT,AnotherMemberTemplate)
-BOOST_TTI_HAS_TEMPLATE(SomeMemberTemplate)
-BOOST_TTI_TRAIT_HAS_TEMPLATE(ATemplateWithParms,ManyParameters)
-BOOST_TTI_HAS_TEMPLATE(SimpleTMP)
-BOOST_TTI_HAS_TEMPLATE(TemplateNotExist)
-
-#endif // !BOOST_TTI_VERSION_1_5
-
 #endif // TEST_HAS_TEMPLATE_HPP

Modified: trunk/libs/tti/test/test_has_template_cp.cpp
==============================================================================
--- trunk/libs/tti/test/test_has_template_cp.cpp (original)
+++ trunk/libs/tti/test/test_has_template_cp.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -10,24 +10,12 @@
 int main()
   {
   
-#if !defined(BOOST_TTI_VERSION_1_5)
-
   BOOST_TEST(BOOST_TTI_HAS_TEMPLATE_GEN(ATPMemberTemplate)<AType>::value);
   BOOST_TEST(BOOST_TTI_HAS_TEMPLATE_GEN(AMemberTemplate)<AType>::value);
   BOOST_TEST(BOOST_TTI_HAS_TEMPLATE_GEN(SomeMemberTemplate)<AnotherType>::value);
   BOOST_TEST(BOOST_TTI_HAS_TEMPLATE_GEN(SimpleTMP)<AnotherType>::value);
   BOOST_TEST(!BOOST_TTI_HAS_TEMPLATE_GEN(TemplateNotExist)<AnotherType>::value);
 
-#else // BOOST_TTI_VERSION_1_5
-
- BOOST_TEST(BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(ATPMemberTemplate)<AType>::value);
- BOOST_TEST(BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(AMemberTemplate)<AType>::value);
- BOOST_TEST(BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(SomeMemberTemplate)<AnotherType>::value);
- BOOST_TEST(BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(SimpleTMP)<AnotherType>::value);
- BOOST_TEST(!BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(TemplateNotExist)<AnotherType>::value);
-
-#endif // !BOOST_TTI_VERSION_1_5
-
   BOOST_TEST(HaveCL<AType>::value);
   BOOST_TEST(HaveAnotherMT<AType>::value);
   BOOST_TEST(ATemplateWithParms<AnotherType>::value);

Modified: trunk/libs/tti/test/test_has_template_cp.hpp
==============================================================================
--- trunk/libs/tti/test/test_has_template_cp.hpp (original)
+++ trunk/libs/tti/test/test_has_template_cp.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -8,9 +8,6 @@
 #define TEST_HAS_TEMPLATE_CHECK_PARAMS_HPP
 
 #include "test_structs.hpp"
-
-#if !defined(BOOST_TTI_VERSION_1_5)
-
 #include <boost/tti/has_template.hpp>
 
 BOOST_TTI_HAS_TEMPLATE(ATPMemberTemplate,(1,(class)))
@@ -24,21 +21,4 @@
 BOOST_TTI_TRAIT_HAS_TEMPLATE(WrongParametersForMP,ManyParameters,(8,(class,class,int,class,template <class,class> class InnerTemplate,class,long)))
 BOOST_TTI_TRAIT_HAS_TEMPLATE(WrongParameters2ForMP,ManyParameters,(7,(class,long,int,class,template <class> class InnerTemplate,class,long)))
 
-#else // BOOST_TTI_VERSION_1_5
-
-#include <boost/tti/has_template_check_params.hpp>
-
-BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS(ATPMemberTemplate,(class))
-BOOST_TTI_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(HaveCL,CLMemberTemplate,(class)(class))
-BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS(AMemberTemplate,(int))
-BOOST_TTI_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(HaveAnotherMT,AnotherMemberTemplate,(int)(int))
-BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS(SomeMemberTemplate,(class)(class)(class)(class)(class)(class))
-BOOST_TTI_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(ATemplateWithParms,ManyParameters,(class)(class)(int)(class)(template <class> class)(class)(long))
-BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS(SimpleTMP,(class)(class)(class)(class))
-BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS(TemplateNotExist,(int)(class)(template <class> class ATemplate))
-BOOST_TTI_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(WrongParametersForMP,ManyParameters,(class)(class)(int)(class)(template <class)(class> class InnerTemplate)(class)(long))
-BOOST_TTI_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(WrongParameters2ForMP,ManyParameters,(class)(long)(int)(class)(template <class> class InnerTemplate)(class)(long))
-
-#endif // !BOOST_TTI_VERSION_1_5
-
 #endif // TEST_HAS_TEMPLATE_CHECK_PARAMS_HPP

Modified: trunk/libs/tti/test/test_has_template_cp_compile.cpp
==============================================================================
--- trunk/libs/tti/test/test_has_template_cp_compile.cpp (original)
+++ trunk/libs/tti/test/test_has_template_cp_compile.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -10,8 +10,6 @@
 int main()
   {
   
-#if !defined(BOOST_TTI_VERSION_1_5)
-
   // You can always instantiate without compiler errors
   
   BOOST_TTI_HAS_TEMPLATE_GEN(TemplateNotExist)<AnotherType> aVar1;
@@ -22,21 +20,6 @@
   BOOST_MPL_ASSERT((BOOST_TTI_HAS_TEMPLATE_GEN(AMemberTemplate)<AType>));
   BOOST_MPL_ASSERT((BOOST_TTI_HAS_TEMPLATE_GEN(SomeMemberTemplate)<AnotherType>));
   BOOST_MPL_ASSERT((BOOST_TTI_HAS_TEMPLATE_GEN(SimpleTMP)<AnotherType>));
-
-#else // BOOST_TTI_VERSION_1_5
-
- // You can always instantiate without compiler errors
-
- BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(TemplateNotExist)<AnotherType> aVar1;
-
- // Compile time asserts
-
- BOOST_MPL_ASSERT((BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(ATPMemberTemplate)<AType>));
- BOOST_MPL_ASSERT((BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(AMemberTemplate)<AType>));
- BOOST_MPL_ASSERT((BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(SomeMemberTemplate)<AnotherType>));
- BOOST_MPL_ASSERT((BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(SimpleTMP)<AnotherType>));
-
-#endif // !BOOST_TTI_VERSION_1_5
 
   BOOST_MPL_ASSERT((HaveCL<AType>));
   BOOST_MPL_ASSERT((HaveAnotherMT<AType>));

Modified: trunk/libs/tti/test/test_has_template_cp_fail.cpp
==============================================================================
--- trunk/libs/tti/test/test_has_template_cp_fail.cpp (original)
+++ trunk/libs/tti/test/test_has_template_cp_fail.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -10,21 +10,10 @@
 int main()
   {
   
-
-#if !defined(BOOST_TTI_VERSION_1_5)
-
   // TemplateNotExist does not exist at all
   
   BOOST_MPL_ASSERT((BOOST_TTI_HAS_TEMPLATE_GEN(TemplateNotExist)<AType>));
   
-#else // BOOST_TTI_VERSION_1_5
-
- // TemplateNotExist does not exist at all
-
- BOOST_MPL_ASSERT((BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(TemplateNotExist)<AType>));
-
-#endif // !BOOST_TTI_VERSION_1_5
-
   return 0;
 
   }

Deleted: trunk/libs/tti/test/test_mf_has_mem_data.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_mem_data.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,171 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_mem_data.hpp"
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/tti/mf/mf_has_member_data.hpp>
-#include <boost/tti/mf/mf_member_type.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- BOOST_TEST((boost::tti::mf_has_member_data
- <
- BOOST_TTI_HAS_MEMBER_DATA_GEN(AnInt)<_,_>,
- boost::mpl::identity<AType>,
- int
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_data
- <
- BOOST_TTI_HAS_MEMBER_DATA_GEN(AnInt)<_,_>,
- boost::mpl::identity<AnotherType>,
- long
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_data
- <
- BOOST_TTI_HAS_MEMBER_DATA_GEN(aMember)<_,_>,
- boost::mpl::identity<AnotherType>,
- bool
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_data
- <
- CMember<_,_>,
- boost::mpl::identity<AnotherType>,
- bool
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_data
- <
- BOOST_TTI_HAS_MEMBER_DATA_GEN(IntBT)<_,_>,
- boost::mpl::identity<AType>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_data
- <
- NestedData<_,_>,
- boost::mpl::identity<AType>,
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_data
- <
- AOther<_,_>,
- boost::mpl::identity<AnotherType>,
- boost::mpl::identity<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_data
- <
- BOOST_TTI_HAS_MEMBER_DATA_GEN(ONestStr)<_,_>,
- boost::mpl::identity<AnotherType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_data
- <
- boost::mpl::quote2<BOOST_TTI_HAS_MEMBER_DATA_GEN(AnInt)>,
- boost::mpl::identity<AType>,
- int
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_data
- <
- boost::mpl::quote2<BOOST_TTI_HAS_MEMBER_DATA_GEN(AnInt)>,
- boost::mpl::identity<AnotherType>,
- long
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_data
- <
- boost::mpl::quote2<BOOST_TTI_HAS_MEMBER_DATA_GEN(aMember)>,
- boost::mpl::identity<AnotherType>,
- bool
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_data
- <
- boost::mpl::quote2<CMember>,
- boost::mpl::identity<AnotherType>,
- bool
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_data
- <
- boost::mpl::quote2<BOOST_TTI_HAS_MEMBER_DATA_GEN(IntBT)>,
- boost::mpl::identity<AType>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_data
- <
- boost::mpl::quote2<NestedData>,
- boost::mpl::identity<AType>,
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<BOOST_TTI_MEMBER_TYPE_GEN(CType)>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_data
- <
- boost::mpl::quote2<AOther>,
- boost::mpl::identity<AnotherType>,
- boost::mpl::identity<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_data
- <
- boost::mpl::quote2<BOOST_TTI_HAS_MEMBER_DATA_GEN(ONestStr)>,
- boost::mpl::identity<AnotherType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>
- >
- ::value
- ));
-
- return boost::report_errors();
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_mem_data.hpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_mem_data.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,27 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#if !defined(TEST_MF_HAS_MEMBER_DATA_HPP)
-#define TEST_MF_HAS_MEMBER_DATA_HPP
-
-#include "test_structs.hpp"
-#include <boost/tti/has_member_data.hpp>
-#include <boost/tti/member_type.hpp>
-
-BOOST_TTI_HAS_MEMBER_DATA(AnInt)
-BOOST_TTI_HAS_MEMBER_DATA(aMember)
-BOOST_TTI_TRAIT_HAS_MEMBER_DATA(CMember,cMem)
-BOOST_TTI_HAS_MEMBER_DATA(someDataMember)
-BOOST_TTI_HAS_MEMBER_DATA(IntBT)
-BOOST_TTI_TRAIT_HAS_MEMBER_DATA(NestedData,NestedCT)
-BOOST_TTI_TRAIT_HAS_MEMBER_DATA(AOther,OtherAT)
-BOOST_TTI_HAS_MEMBER_DATA(ONestStr)
-
-BOOST_TTI_MEMBER_TYPE(BType)
-BOOST_TTI_MEMBER_TYPE(CType)
-BOOST_TTI_MEMBER_TYPE(AStructType)
-
-#endif // TEST_MF_HAS_MEMBER_DATA_HPP

Deleted: trunk/libs/tti/test/test_mf_has_mem_data_compile.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_mem_data_compile.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,155 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_mem_data.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_member_data.hpp>
-#include <boost/tti/mf/mf_member_type.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_data
- <
- BOOST_TTI_HAS_MEMBER_DATA_GEN(AnInt)<_,_>,
- boost::mpl::identity<AType>,
- int
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_data
- <
- BOOST_TTI_HAS_MEMBER_DATA_GEN(AnInt)<_,_>,
- boost::mpl::identity<AnotherType>,
- long
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_data
- <
- BOOST_TTI_HAS_MEMBER_DATA_GEN(aMember)<_,_>,
- boost::mpl::identity<AnotherType>,
- bool
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_data
- <
- CMember<_,_>,
- boost::mpl::identity<AnotherType>,
- bool
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_data
- <
- BOOST_TTI_HAS_MEMBER_DATA_GEN(IntBT)<_,_>,
- boost::mpl::identity<AType>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_data
- <
- NestedData<_,_>,
- boost::mpl::identity<AType>,
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_data
- <
- AOther<_,_>,
- boost::mpl::identity<AnotherType>,
- boost::mpl::identity<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_data
- <
- BOOST_TTI_HAS_MEMBER_DATA_GEN(ONestStr)<_,_>,
- boost::mpl::identity<AnotherType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_data
- <
- boost::mpl::quote2<BOOST_TTI_HAS_MEMBER_DATA_GEN(AnInt)>,
- boost::mpl::identity<AType>,
- int
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_data
- <
- boost::mpl::quote2<BOOST_TTI_HAS_MEMBER_DATA_GEN(AnInt)>,
- boost::mpl::identity<AnotherType>,
- long
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_data
- <
- boost::mpl::quote2<BOOST_TTI_HAS_MEMBER_DATA_GEN(aMember)>,
- boost::mpl::identity<AnotherType>,
- bool
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_data
- <
- boost::mpl::quote2<CMember>,
- boost::mpl::identity<AnotherType>,
- bool
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_data
- <
- boost::mpl::quote2<BOOST_TTI_HAS_MEMBER_DATA_GEN(IntBT)>,
- boost::mpl::identity<AType>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_data
- <
- boost::mpl::quote2<NestedData>,
- boost::mpl::identity<AType>,
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<BOOST_TTI_MEMBER_TYPE_GEN(CType)>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_data
- <
- boost::mpl::quote2<AOther>,
- boost::mpl::identity<AnotherType>,
- boost::mpl::identity<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_data
- <
- boost::mpl::quote2<BOOST_TTI_HAS_MEMBER_DATA_GEN(ONestStr)>,
- boost::mpl::identity<AnotherType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_mem_data_fail.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_mem_data_fail.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,28 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_mem_data.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_member_data.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // someDataMember does not exist at all
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_data
- <
- BOOST_TTI_HAS_MEMBER_DATA_GEN(someDataMember)<_,_>,
- boost::mpl::identity<AnotherType>,
- short
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_mem_data_fail2.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_mem_data_fail2.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,28 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_mem_data.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_member_data.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // Wrong data signature for AnInt
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_data
- <
- BOOST_TTI_HAS_MEMBER_DATA_GEN(AnInt)<_,_>,
- boost::mpl::identity<AnotherType>,
- double
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_mem_data_fail3.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_mem_data_fail3.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,28 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_mem_data.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_member_data.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // Wrong enclosing type
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_data
- <
- BOOST_TTI_HAS_MEMBER_DATA_GEN(aMember)<_,_>,
- boost::mpl::identity<AType>,
- bool
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_mem_fun.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_mem_fun.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,144 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_mem_fun.hpp"
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/tti/mf/mf_has_member_function.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- BOOST_TEST((boost::tti::mf_has_member_function
- <
- BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(VoidFunction)<_,_>,
- boost::mpl::identity<AType>,
- void
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_function
- <
- FunctionReturningInt<_,_>,
- boost::mpl::identity<AType>,
- int
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_function
- <
- FunctionReturningInt<_,_,_>,
- boost::mpl::identity<AnotherType>,
- double,
- boost::mpl::vector<int>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_function
- <
- BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(aFunction)<_,_,_>,
- boost::mpl::identity<AnotherType>,
- boost::mpl::identity<AType>,
- boost::mpl::vector<int>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_function
- <
- AnotherIntFunction<_,_,_>,
- boost::mpl::identity<AnotherType>,
- int,
- boost::mpl::vector<boost::mpl::identity<AType> >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_function
- <
- BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(sFunction)<_,_,_>,
- boost::mpl::identity<AnotherType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AnIntType)<AType>,
- boost::mpl::vector
- <
- int,
- long,
- double
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_function
- <
- boost::mpl::quote4<BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(VoidFunction)>,
- boost::mpl::identity<AType>,
- void
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_function
- <
- boost::mpl::quote4<FunctionReturningInt>,
- boost::mpl::identity<AType>,
- int
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_function
- <
- boost::mpl::quote4<FunctionReturningInt>,
- boost::mpl::identity<AnotherType>,
- double,
- boost::mpl::vector<int>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_function
- <
- boost::mpl::quote4<BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(aFunction)>,
- boost::mpl::identity<AnotherType>,
- boost::mpl::identity<AType>,
- boost::mpl::vector<int>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_function
- <
- boost::mpl::quote4<AnotherIntFunction>,
- boost::mpl::identity<AnotherType>,
- int,
- boost::mpl::vector<boost::mpl::identity<AType> >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_member_function
- <
- boost::mpl::quote4<BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(sFunction)>,
- boost::mpl::identity<AnotherType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AnIntType)<AType>,
- boost::mpl::vector
- <
- int,
- long,
- double
- >
- >
- ::value
- ));
-
- return boost::report_errors();
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_mem_fun.hpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_mem_fun.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,23 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#if !defined(TEST_MF_HAS_MEMBER_FUNCTION_HPP)
-#define TEST_MF_HAS_MEMBER_FUNCTION_HPP
-
-#include "test_structs.hpp"
-#include <boost/tti/has_member_function.hpp>
-#include <boost/tti/member_type.hpp>
-
-BOOST_TTI_HAS_MEMBER_FUNCTION(VoidFunction)
-BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION(FunctionReturningInt,IntFunction)
-BOOST_TTI_HAS_MEMBER_FUNCTION(aFunction)
-BOOST_TTI_TRAIT_HAS_MEMBER_FUNCTION(AnotherIntFunction,anotherFunction)
-BOOST_TTI_HAS_MEMBER_FUNCTION(sFunction)
-BOOST_TTI_HAS_MEMBER_FUNCTION(someFunctionMember)
-
-BOOST_TTI_MEMBER_TYPE(AnIntType)
-
-#endif // TEST_MF_HAS_MEMBER_FUNCTION_HPP

Deleted: trunk/libs/tti/test/test_mf_has_mem_fun_compile.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_mem_fun_compile.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,169 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_mem_fun.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_member_function.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // You can always instantiate without compiler errors
-
- boost::tti::mf_has_member_function
- <
- FunctionReturningInt<_,_>,
- boost::mpl::identity<AnotherType>,
- short
- > aVar;
-
- boost::tti::mf_has_member_function
- <
- BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(sFunction)<_,_,_>,
- boost::mpl::identity<AnotherType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AnIntType)<AnotherType>,
- boost::mpl::vector
- <
- int,
- long,
- double
- >
- > aVar2;
-
- boost::tti::mf_has_member_function
- <
- BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(someFunctionMember)<_,_,_>,
- boost::mpl::identity<AnotherType>,
- short,
- boost::mpl::vector
- <
- double,
- int,
- long
- >
- > aVar3;
-
- // Compile time asserts
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_function
- <
- BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(VoidFunction)<_,_>,
- boost::mpl::identity<AType>,
- void
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_function
- <
- FunctionReturningInt<_,_>,
- boost::mpl::identity<AType>,
- int
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_function
- <
- FunctionReturningInt<_,_,_>,
- boost::mpl::identity<AnotherType>,
- double,
- boost::mpl::vector<int>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_function
- <
- BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(aFunction)<_,_,_>,
- boost::mpl::identity<AnotherType>,
- boost::mpl::identity<AType>,
- boost::mpl::vector<int>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_function
- <
- AnotherIntFunction<_,_,_>,
- boost::mpl::identity<AnotherType>,
- int,
- boost::mpl::vector<boost::mpl::identity<AType> >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_function
- <
- BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(sFunction)<_,_,_>,
- boost::mpl::identity<AnotherType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AnIntType)<AType>,
- boost::mpl::vector
- <
- int,
- long,
- double
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_function
- <
- boost::mpl::quote4<BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(VoidFunction)>,
- boost::mpl::identity<AType>,
- void
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_function
- <
- boost::mpl::quote4<FunctionReturningInt>,
- boost::mpl::identity<AType>,
- int
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_function
- <
- boost::mpl::quote4<FunctionReturningInt>,
- boost::mpl::identity<AnotherType>,
- double,
- boost::mpl::vector<int>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_function
- <
- boost::mpl::quote4<BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(aFunction)>,
- boost::mpl::identity<AnotherType>,
- boost::mpl::identity<AType>,
- boost::mpl::vector<int>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_function
- <
- boost::mpl::quote4<AnotherIntFunction>,
- boost::mpl::identity<AnotherType>,
- int,
- boost::mpl::vector<boost::mpl::identity<AType> >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_function
- <
- boost::mpl::quote4<BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(sFunction)>,
- boost::mpl::identity<AnotherType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AnIntType)<AType>,
- boost::mpl::vector
- <
- int,
- long,
- double
- >
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_mem_fun_fail.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_mem_fun_fail.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,34 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_mem_fun.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_member_function.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // someFunctionMember does not exist at all
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_function
- <
- BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(someFunctionMember)<_,_,_>,
- boost::mpl::identity<AnotherType>,
- short,
- boost::mpl::vector
- <
- double,
- int,
- long
- >
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_mem_fun_fail2.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_mem_fun_fail2.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,28 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_mem_fun.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_member_function.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // Wrong function signature
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_function
- <
- FunctionReturningInt<_,_>,
- boost::mpl::identity<AnotherType>,
- short
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_mem_fun_fail3.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_mem_fun_fail3.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,34 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_mem_fun.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_member_function.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // Wrong enclosing type for nested type
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_member_function
- <
- BOOST_TTI_HAS_MEMBER_FUNCTION_GEN(sFunction)<_,_,_>,
- boost::mpl::identity<AnotherType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AnIntType)<AnotherType>,
- boost::mpl::vector
- <
- int,
- long,
- double
- >
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_static_data.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_static_data.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,36 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_static_data.hpp"
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/tti/mf/mf_has_static_member_data.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- BOOST_TEST((boost::tti::mf_has_static_member_data
- <
- BOOST_TTI_HAS_STATIC_MEMBER_DATA_GEN(DSMember)<_,_>,
- boost::mpl::identity<AType>,
- short
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_static_member_data
- <
- boost::mpl::quote2<BOOST_TTI_HAS_STATIC_MEMBER_DATA_GEN(DSMember)>,
- boost::mpl::identity<AType>,
- short
- >
- ::value
- ));
-
- return boost::report_errors();
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_static_data.hpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_static_data.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,16 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#if !defined(TEST_MF_HAS_STATIC_DATA_HPP)
-#define TEST_MF_HAS_STATIC_DATA_HPP
-
-#include "test_structs.hpp"
-#include <boost/tti/has_static_member_data.hpp>
-
-BOOST_TTI_HAS_STATIC_MEMBER_DATA(DSMember)
-BOOST_TTI_HAS_STATIC_MEMBER_DATA(SomeStaticData)
-
-#endif // TEST_MF_HAS_STATIC_DATA_HPP

Deleted: trunk/libs/tti/test/test_mf_has_static_data_compile.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_static_data_compile.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,45 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_static_data.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_static_member_data.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // You can always instantiate without compiler errors
-
- boost::tti::mf_has_static_member_data
- <
- BOOST_TTI_HAS_STATIC_MEMBER_DATA_GEN(SomeStaticData)<_,_>,
- boost::mpl::identity<AnotherType>,
- double
- > aVar;
-
- // Compile time asserts
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_static_member_data
- <
- BOOST_TTI_HAS_STATIC_MEMBER_DATA_GEN(DSMember)<_,_>,
- boost::mpl::identity<AType>,
- short
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_static_member_data
- <
- boost::mpl::quote2<BOOST_TTI_HAS_STATIC_MEMBER_DATA_GEN(DSMember)>,
- boost::mpl::identity<AType>,
- short
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_static_data_fail.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_static_data_fail.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,28 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_static_data.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_static_member_data.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // SomeStaticData does not exist at all
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_static_member_data
- <
- BOOST_TTI_HAS_STATIC_MEMBER_DATA_GEN(SomeStaticData)<_,_>,
- boost::mpl::identity<AnotherType>,
- int
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_static_data_fail2.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_static_data_fail2.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,28 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_static_data.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_static_member_data.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // Wrong enclosing type
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_static_member_data
- <
- BOOST_TTI_HAS_STATIC_MEMBER_DATA_GEN(DSMember)<_,_>,
- boost::mpl::identity<AnotherType>,
- short
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_static_data_fail3.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_static_data_fail3.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,28 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_static_data.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_static_member_data.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // Wrong member type
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_static_member_data
- <
- BOOST_TTI_HAS_STATIC_MEMBER_DATA_GEN(DSMember)<_,_>,
- boost::mpl::identity<AType>,
- int
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_static_fun.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_static_fun.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,102 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_static_fun.hpp"
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/tti/mf/mf_has_static_member_function.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- BOOST_TEST((boost::tti::mf_has_static_member_function
- <
- HaveTheSIntFunction<_,_,_>,
- boost::mpl::identity<AType>,
- int,
- boost::mpl::vector
- <
- long,
- double
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_static_member_function
- <
- TheTIntFunction<_,_,_>,
- boost::mpl::identity<AnotherType>,
- boost::mpl::identity<AType>,
- boost::mpl::vector
- <
- long,
- double
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_static_member_function
- <
- BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_GEN(TSFunction)<_,_,_>,
- boost::mpl::identity<AnotherType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>,
- boost::mpl::vector
- <
- NameIntType<AType>,
- double
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_static_member_function
- <
- boost::mpl::quote4<HaveTheSIntFunction>,
- boost::mpl::identity<AType>,
- int,
- boost::mpl::vector
- <
- long,
- double
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_static_member_function
- <
- boost::mpl::quote4<TheTIntFunction>,
- boost::mpl::identity<AnotherType>,
- boost::mpl::identity<AType>,
- boost::mpl::vector
- <
- long,
- double
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_static_member_function
- <
- boost::mpl::quote4<BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_GEN(TSFunction)>,
- boost::mpl::identity<AnotherType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>,
- boost::mpl::vector
- <
- NameIntType<AType>,
- double
- >
- >
- ::value
- ));
-
- return boost::report_errors();
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_static_fun.hpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_static_fun.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,22 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#if !defined(TEST_MF_HAS_STATIC_FUNCTION_HPP)
-#define TEST_MF_HAS_STATIC_FUNCTION_HPP
-
-#include "test_structs.hpp"
-#include <boost/tti/has_static_member_function.hpp>
-#include <boost/tti/member_type.hpp>
-
-BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION(HaveTheSIntFunction,SIntFunction)
-BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION(TheTIntFunction,TIntFunction)
-BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION(TSFunction)
-BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_FUNCTION(Pickedname,SomeStaticFunction)
-
-BOOST_TTI_MEMBER_TYPE(AStructType)
-BOOST_TTI_TRAIT_MEMBER_TYPE(NameIntType,AnIntType)
-
-#endif // TEST_MF_HAS_STATIC_FUNCTION_HPP

Deleted: trunk/libs/tti/test/test_mf_has_static_fun_compile.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_static_fun_compile.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,120 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_static_fun.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_static_member_function.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // You can always instantiate without compiler errors
-
- boost::tti::mf_has_static_member_function
- <
- HaveTheSIntFunction<_,_,_>,
- boost::mpl::identity<AType>,
- int,
- boost::mpl::vector
- <
- long,
- short
- >
- > aVar;
-
- boost::tti::mf_has_static_member_function
- <
- boost::mpl::quote4<Pickedname>,
- boost::mpl::identity<AType>,
- double,
- boost::mpl::vector<float>
- > aVar2;
-
- // Compile time asserts
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_static_member_function
- <
- HaveTheSIntFunction<_,_,_>,
- boost::mpl::identity<AType>,
- int,
- boost::mpl::vector
- <
- long,
- double
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_static_member_function
- <
- TheTIntFunction<_,_,_>,
- boost::mpl::identity<AnotherType>,
- boost::mpl::identity<AType>,
- boost::mpl::vector
- <
- long,
- double
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_static_member_function
- <
- BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_GEN(TSFunction)<_,_,_>,
- boost::mpl::identity<AnotherType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>,
- boost::mpl::vector
- <
- NameIntType<AType>,
- double
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_static_member_function
- <
- boost::mpl::quote4<HaveTheSIntFunction>,
- boost::mpl::identity<AType>,
- int,
- boost::mpl::vector
- <
- long,
- double
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_static_member_function
- <
- boost::mpl::quote4<TheTIntFunction>,
- boost::mpl::identity<AnotherType>,
- boost::mpl::identity<AType>,
- boost::mpl::vector
- <
- long,
- double
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_static_member_function
- <
- boost::mpl::quote4<BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_GEN(TSFunction)>,
- boost::mpl::identity<AnotherType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>,
- boost::mpl::vector
- <
- NameIntType<AType>,
- double
- >
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_static_fun_fail.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_static_fun_fail.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,33 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_static_fun.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_static_member_function.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // SomeStaticFunction does not exist at all
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_static_member_function
- <
- Pickedname<_,_,_>,
- boost::mpl::identity<AType>,
- short,
- boost::mpl::vector
- <
- int,
- long
- >
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_static_fun_fail2.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_static_fun_fail2.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,33 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_static_fun.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_static_member_function.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // Wrong enclosing type
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_static_member_function
- <
- HaveTheSIntFunction<_,_,_>,
- boost::mpl::identity<AnotherType>,
- int,
- boost::mpl::vector
- <
- long,
- double
- >
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_static_fun_fail3.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_static_fun_fail3.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,33 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_static_fun.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_static_member_function.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // Wrong function parameter type
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_static_member_function
- <
- BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION_GEN(TSFunction)<_,_,_>,
- boost::mpl::identity<AnotherType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>,
- boost::mpl::vector
- <
- NameIntType<AnotherType>,
- double
- >
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_template.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_template.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,98 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_template.hpp"
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/tti/mf/mf_has_template.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- BOOST_TEST((boost::tti::mf_has_template
- <
- HaveMStr<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>
- >
- ::value
- ));
-
- BOOST_TEST((!boost::tti::mf_has_template
- <
- BOOST_TTI_HAS_TEMPLATE_GEN(TemplateNotExist)<_>,
- MT_BType<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_template
- <
- BOOST_TTI_HAS_TEMPLATE_GEN(ATPMemberTemplate)<_>,
- boost::mpl::identity<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_template
- <
- HaveCL<_>,
- boost::mpl::identity<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_template
- <
- BOOST_TTI_HAS_TEMPLATE_GEN(SimpleTMP)<_>,
- boost::mpl::identity<AnotherType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_template
- <
- boost::mpl::quote1<HaveMStr>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>
- >
- ::value
- ));
-
- BOOST_TEST((!boost::tti::mf_has_template
- <
- boost::mpl::quote1<BOOST_TTI_HAS_TEMPLATE_GEN(TemplateNotExist)>,
- MT_BType<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_template
- <
- boost::mpl::quote1<BOOST_TTI_HAS_TEMPLATE_GEN(ATPMemberTemplate)>,
- boost::mpl::identity<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_template
- <
- boost::mpl::quote1<HaveCL>,
- boost::mpl::identity<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_template
- <
- boost::mpl::quote1<BOOST_TTI_HAS_TEMPLATE_GEN(SimpleTMP)>,
- boost::mpl::identity<AnotherType>
- >
- ::value
- ));
-
- return boost::report_errors();
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_template.hpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_template.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,25 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#if !defined(TEST_MF_HAS_TEMPLATE_HPP)
-#define TEST_MF_HAS_TEMPLATE_HPP
-
-#include "test_structs.hpp"
-#include <boost/tti/has_template.hpp>
-#include <boost/tti/member_type.hpp>
-
-BOOST_TTI_TRAIT_HAS_TEMPLATE(HaveMStr,MStrMemberTemplate)
-BOOST_TTI_HAS_TEMPLATE(TemplateNotExist)
-BOOST_TTI_HAS_TEMPLATE(ATPMemberTemplate)
-BOOST_TTI_TRAIT_HAS_TEMPLATE(HaveCL,CLMemberTemplate)
-BOOST_TTI_HAS_TEMPLATE(SimpleTMP)
-BOOST_TTI_TRAIT_HAS_TEMPLATE(AMT,AnotherMemberTemplate)
-BOOST_TTI_HAS_TEMPLATE(SomeMemberTemplate)
-
-BOOST_TTI_MEMBER_TYPE(AStructType)
-BOOST_TTI_TRAIT_MEMBER_TYPE(MT_BType,BType)
-
-#endif // TEST_MF_HAS_TEMPLATE_HPP

Deleted: trunk/libs/tti/test/test_mf_has_template_compile.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_template_compile.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,90 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_template.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_template.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // You can always instantiate without compiler errors
-
- boost::tti::mf_has_template
- <
- BOOST_TTI_HAS_TEMPLATE_GEN(TemplateNotExist)<_>,
- MT_BType<AType>
- > aVar;
-
- boost::tti::mf_has_template
- <
- boost::mpl::quote1<BOOST_TTI_HAS_TEMPLATE_GEN(ATPMemberTemplate)>,
- boost::mpl::identity<AnotherType>
- > aVar2;
-
- // Compile time asserts
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template
- <
- HaveMStr<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template
- <
- BOOST_TTI_HAS_TEMPLATE_GEN(ATPMemberTemplate)<_>,
- boost::mpl::identity<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template
- <
- HaveCL<_>,
- boost::mpl::identity<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template
- <
- BOOST_TTI_HAS_TEMPLATE_GEN(SimpleTMP)<_>,
- boost::mpl::identity<AnotherType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template
- <
- boost::mpl::quote1<HaveMStr>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template
- <
- boost::mpl::quote1<BOOST_TTI_HAS_TEMPLATE_GEN(ATPMemberTemplate)>,
- boost::mpl::identity<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template
- <
- boost::mpl::quote1<HaveCL>,
- boost::mpl::identity<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template
- <
- boost::mpl::quote1<BOOST_TTI_HAS_TEMPLATE_GEN(SimpleTMP)>,
- boost::mpl::identity<AnotherType>
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_template_cp.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_template_cp.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,115 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_template_cp.hpp"
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/tti/mf/mf_has_template_check_params.hpp>
-#include <boost/tti/mf/mf_member_type.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- BOOST_TEST((boost::tti::mf_has_template_check_params
- <
- HT_Str<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_template_check_params
- <
- BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(AnotherMemberTemplate)<_>,
- boost::mpl::identity<AType>
- >
- ::value
- ));
-
- BOOST_TEST((!boost::tti::mf_has_template_check_params
- <
- WrongParametersForMP<_>,
- boost::mpl::identity<AnotherType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_template_check_params
- <
- BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(CTManyParameters)<_>,
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- MT_BType<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((!boost::tti::mf_has_template_check_params
- <
- BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(TemplateNotExist)<_>,
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- MT_BType<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_template_check_params
- <
- boost::mpl::quote1<HT_Str>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_template_check_params
- <
- boost::mpl::quote1<BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(AnotherMemberTemplate)>,
- boost::mpl::identity<AType>
- >
- ::value
- ));
-
- BOOST_TEST((!boost::tti::mf_has_template_check_params
- <
- boost::mpl::quote1<WrongParametersForMP>,
- boost::mpl::identity<AnotherType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_template_check_params
- <
- boost::mpl::quote1<BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(CTManyParameters)>,
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- MT_BType<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((!boost::tti::mf_has_template_check_params
- <
- boost::mpl::quote1<BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(TemplateNotExist)>,
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- MT_BType<AType>
- >
- >
- ::value
- ));
-
- return boost::report_errors();
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_template_cp.hpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_template_cp.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,24 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#if !defined(TEST_MF_HAS_TEMPLATE_CHECK_PARAMS_HPP)
-#define TEST_MF_HAS_TEMPLATE_CHECK_PARAMS_HPP
-
-#include "test_structs.hpp"
-#include <boost/tti/has_template_check_params.hpp>
-#include <boost/tti/member_type.hpp>
-
-BOOST_TTI_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(HT_Str,MStrMemberTemplate,(class))
-BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS(AnotherMemberTemplate,(int)(int))
-BOOST_TTI_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(WrongParametersForMP,ManyParameters,(class)(class)(int)(class)(template <class> class InnerTemplate)(class)(short))
-BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS(CTManyParameters,(class)(class)(int)(short)(class)(template <class)(int> class InnerTemplate)(class))
-BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS(TemplateNotExist,(int)(class))
-
-BOOST_TTI_MEMBER_TYPE(AStructType)
-BOOST_TTI_TRAIT_MEMBER_TYPE(MT_BType,BType)
-BOOST_TTI_MEMBER_TYPE(CType)
-
-#endif // TEST_MF_HAS_TEMPLATE_CHECK_PARAMS_HPP

Deleted: trunk/libs/tti/test/test_mf_has_template_cp_compile.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_template_cp_compile.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,83 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_template_cp.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_template_check_params.hpp>
-#include <boost/tti/mf/mf_member_type.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // You can always instantiate without compiler errors
-
- boost::tti::mf_has_template_check_params
- <
- BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(TemplateNotExist)<_>,
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<BOOST_TTI_MEMBER_TYPE_GEN(CType)>,
- MT_BType<AType>
- >
- > aVar;
-
- // Compile time asserts
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template_check_params
- <
- HT_Str<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template_check_params
- <
- BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(AnotherMemberTemplate)<_>,
- boost::mpl::identity<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template_check_params
- <
- BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(CTManyParameters)<_>,
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- MT_BType<AType>
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template_check_params
- <
- boost::mpl::quote1<HT_Str>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template_check_params
- <
- boost::mpl::quote1<BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(AnotherMemberTemplate)>,
- boost::mpl::identity<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template_check_params
- <
- boost::mpl::quote1<BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(CTManyParameters)>,
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<BOOST_TTI_MEMBER_TYPE_GEN(CType)>,
- MT_BType<AType>
- >
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_template_cp_fail.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_template_cp_fail.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,31 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_template_cp.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_template_check_params.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // Template does not exist
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template_check_params
- <
- BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(TemplateNotExist)<_>,
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- MT_BType<AType>
- >
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_template_cp_fail2.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_template_cp_fail2.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,31 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_template_cp.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_template_check_params.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // Wrong enclosing type
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template_check_params
- <
- BOOST_TTI_HAS_TEMPLATE_CHECK_PARAMS_GEN(CTManyParameters)<_>,
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- boost::mpl::identity<AType>
- >
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_template_cp_fail3.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_template_cp_fail3.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,27 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_template_cp.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_template_check_params.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // Wrong template types
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template_check_params
- <
- WrongParametersForMP<_>,
- boost::mpl::identity<AnotherType>
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_template_fail.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_template_fail.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,27 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_template.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_template.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // TemplateNotExist does not exist at all
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template
- <
- BOOST_TTI_HAS_TEMPLATE_GEN(TemplateNotExist)<_>,
- MT_BType<AType>
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_template_fail2.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_template_fail2.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,27 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_template.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_template.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // Wrong enclosing type
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template
- <
- HaveMStr<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AnotherType>
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_template_fail3.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_template_fail3.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,27 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_template.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_template.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // Too many 'typename' parameters
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template
- <
- BOOST_TTI_HAS_TEMPLATE_GEN(SomeMemberTemplate)<_>,
- boost::mpl::identity<AnotherType>
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_template_fail4.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_template_fail4.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,27 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_template.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_template.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // Not all 'typename' parameters
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_template
- <
- AMT<_>,
- boost::mpl::identity<AType>
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_type.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_type.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,155 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_type.hpp"
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/tti/mf/mf_has_type.hpp>
-#include <boost/tti/mf/mf_member_type.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(AnIntType)<_>,
- boost::mpl::identity<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- NameStruct<_>,
- boost::mpl::identity<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(AnIntTypeReference)<_>,
- boost::mpl::identity<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(BType)<_>,
- boost::mpl::identity<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- TheInteger<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(CType)<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(AnotherIntegerType)<_>,
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- SomethingElse<_>,
- boost::mpl::identity<AnotherType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(AnIntType)>,
- boost::mpl::identity<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- boost::mpl::quote2<NameStruct>,
- boost::mpl::identity<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(AnIntTypeReference)>,
- boost::mpl::identity<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(BType)>,
- boost::mpl::identity<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- boost::mpl::quote2<TheInteger>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(CType)>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(AnotherIntegerType)>,
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<BOOST_TTI_MEMBER_TYPE_GEN(CType)>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- boost::mpl::quote2<SomethingElse>,
- boost::mpl::identity<AnotherType>
- >
- ::value
- ));
-
- return boost::report_errors();
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_type.hpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_type.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,28 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#if !defined(TEST_MF_HAS_TYPE_HPP)
-#define TEST_MF_HAS_TYPE_HPP
-
-#include "test_structs.hpp"
-#include <boost/tti/has_type.hpp>
-#include <boost/tti/member_type.hpp>
-
-BOOST_TTI_HAS_TYPE(AnIntType)
-BOOST_TTI_TRAIT_HAS_TYPE(NameStruct,AStructType)
-BOOST_TTI_HAS_TYPE(AnIntTypeReference)
-BOOST_TTI_HAS_TYPE(BType)
-BOOST_TTI_TRAIT_HAS_TYPE(TheInteger,AnIntegerType)
-BOOST_TTI_HAS_TYPE(CType)
-BOOST_TTI_HAS_TYPE(AnotherIntegerType)
-
-BOOST_TTI_TRAIT_HAS_TYPE(SomethingElse,someOtherType)
-BOOST_TTI_HAS_TYPE(NoOtherType)
-
-BOOST_TTI_MEMBER_TYPE(BType)
-BOOST_TTI_MEMBER_TYPE(CType)
-
-#endif // TEST_MF_HAS_TYPE_HPP

Deleted: trunk/libs/tti/test/test_mf_has_type_compile.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_type_compile.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,155 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_type.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_type.hpp>
-#include <boost/tti/mf/mf_member_type.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // You can always instantiate without compiler errors
-
- boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(AnIntType)>,
- boost::mpl::identity<AnotherType>
- > aVar;
-
- boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(NoOtherType)<_>,
- boost::mpl::identity<AnotherType>
- > aVar2;
-
- // Compile time asserts
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(AnIntType)<_>,
- boost::mpl::identity<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- NameStruct<_>,
- boost::mpl::identity<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(AnIntTypeReference)<_>,
- boost::mpl::identity<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(BType)<_>,
- boost::mpl::identity<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- TheInteger<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(CType)<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(AnotherIntegerType)<_>,
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- SomethingElse<_>,
- boost::mpl::identity<AnotherType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(AnIntType)>,
- boost::mpl::identity<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- boost::mpl::quote2<NameStruct>,
- boost::mpl::identity<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(AnIntTypeReference)>,
- boost::mpl::identity<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(BType)>,
- boost::mpl::identity<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- boost::mpl::quote2<TheInteger>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(CType)>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(AnotherIntegerType)>,
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- boost::mpl::quote2<SomethingElse>,
- boost::mpl::identity<AnotherType>
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_type_ct.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_type_ct.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,197 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_type_ct.hpp"
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/tti/mf/mf_has_type.hpp>
-#include <boost/tti/mf/mf_member_type.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(AnIntType)<_,_>,
- boost::mpl::identity<AType>,
- int
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- NameStruct<_,_>,
- boost::mpl::identity<AType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(AnIntTypeReference)<_,_>,
- boost::mpl::identity<AType>,
- int &
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(BType)<_,_>,
- boost::mpl::identity<AType>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- TheInteger<_,_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>,
- int
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(CType)<_,_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>,
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(AnotherIntegerType)<_,_>,
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<BOOST_TTI_MEMBER_TYPE_GEN(CType)>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >,
- int
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- SomethingElse<_,_>,
- boost::mpl::identity<AnotherType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AnIntType)<AType>
- >
- ::value
- ));
-
- BOOST_TEST((!boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(NoOtherType)<_,_>,
- boost::mpl::identity<AnotherType>,
- double
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(AnIntType)>,
- boost::mpl::identity<AType>,
- int
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- boost::mpl::quote2<NameStruct>,
- boost::mpl::identity<AType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(AnIntTypeReference)>,
- boost::mpl::identity<AType>,
- int &
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(BType)>,
- boost::mpl::identity<AType>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- boost::mpl::quote2<TheInteger>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>,
- int
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(CType)>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>,
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(AnotherIntegerType)>,
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<BOOST_TTI_MEMBER_TYPE_GEN(CType)>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >,
- int
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_has_type
- <
- boost::mpl::quote2<SomethingElse>,
- boost::mpl::identity<AnotherType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AnIntType)<AType>
- >
- ::value
- ));
-
- BOOST_TEST((!boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(NoOtherType)>,
- boost::mpl::identity<AnotherType>,
- double
- >
- ::value
- ));
-
- return boost::report_errors();
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_type_ct.hpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_type_ct.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,29 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#if !defined(TEST_MF_HAS_TYPE_CHECK_TYPEDEF_HPP)
-#define TEST_MF_HAS_TYPE_CHECK_TYPEDEF_HPP
-
-#include "test_structs.hpp"
-#include <boost/tti/has_type.hpp>
-#include <boost/tti/member_type.hpp>
-
-BOOST_TTI_HAS_TYPE(AnIntType)
-BOOST_TTI_TRAIT_HAS_TYPE(NameStruct,AStructType)
-BOOST_TTI_HAS_TYPE(AnIntTypeReference)
-BOOST_TTI_HAS_TYPE(BType)
-BOOST_TTI_TRAIT_HAS_TYPE(TheInteger,AnIntegerType)
-BOOST_TTI_HAS_TYPE(CType)
-BOOST_TTI_HAS_TYPE(AnotherIntegerType)
-BOOST_TTI_TRAIT_HAS_TYPE(SomethingElse,someOtherType)
-BOOST_TTI_HAS_TYPE(NoOtherType)
-
-BOOST_TTI_MEMBER_TYPE(AStructType)
-BOOST_TTI_MEMBER_TYPE(BType)
-BOOST_TTI_MEMBER_TYPE(CType)
-BOOST_TTI_MEMBER_TYPE(AnIntType)
-
-#endif // TEST_MF_HAS_TYPE_CHECK_TYPEDEF_HPP

Deleted: trunk/libs/tti/test/test_mf_has_type_ct_compile.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_type_ct_compile.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,181 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_type_ct.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_type.hpp>
-#include <boost/tti/mf/mf_member_type.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // You can always instantiate without compiler errors
-
- boost::tti::mf_has_type
- <
- TheInteger<_,_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AnotherType>,
- long
- > aVar;
-
- boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(NoOtherType)>,
- boost::mpl::identity<AType>,
- float
- > aVar2;
-
- // Compile time asserts
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(AnIntType)<_,_>,
- boost::mpl::identity<AType>,
- int
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- NameStruct<_,_>,
- boost::mpl::identity<AType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(AnIntTypeReference)<_,_>,
- boost::mpl::identity<AType>,
- int &
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(BType)<_,_>,
- boost::mpl::identity<AType>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- TheInteger<_,_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>,
- int
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(CType)<_,_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>,
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(AnotherIntegerType)<_,_>,
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >,
- int
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- SomethingElse<_,_>,
- boost::mpl::identity<AnotherType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AnIntType)<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(AnIntType)>,
- boost::mpl::identity<AType>,
- int
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- boost::mpl::quote2<NameStruct>,
- boost::mpl::identity<AType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AStructType)<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(AnIntTypeReference)>,
- boost::mpl::identity<AType>,
- int &
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(BType)>,
- boost::mpl::identity<AType>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- boost::mpl::quote2<TheInteger>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>,
- int
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(CType)>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>,
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- boost::mpl::quote2<BOOST_TTI_HAS_TYPE_GEN(AnotherIntegerType)>,
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<BOOST_TTI_MEMBER_TYPE_GEN(CType)>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >,
- int
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- boost::mpl::quote2<SomethingElse>,
- boost::mpl::identity<AnotherType>,
- BOOST_TTI_MEMBER_TYPE_GEN(AnIntType)<AType>
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_type_ct_fail.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_type_ct_fail.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,28 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_type_ct.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_type.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // NoOtherType does not exist at all
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(NoOtherType)<_,_>,
- boost::mpl::identity<AnotherType>,
- float
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_type_ct_fail2.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_type_ct_fail2.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,28 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_type_ct.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_type.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // Wrong enclosing type
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(BType)<_,_>,
- boost::mpl::identity<AnotherType>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_type_ct_fail3.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_type_ct_fail3.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,28 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_type_ct.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_type.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // Wrong typedef type
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- TheInteger<_,_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>,
- long
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_type_fail.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_type_fail.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,27 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_type.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_type.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // NoOtherType does not exist at all
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(NoOtherType)<_>,
- boost::mpl::identity<AType>
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_has_type_fail2.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_has_type_fail2.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,27 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_has_type.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_has_type.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- // Wrong enclosing type
-
- BOOST_MPL_ASSERT((boost::tti::mf_has_type
- <
- BOOST_TTI_HAS_TYPE_GEN(AnIntType)<_>,
- boost::mpl::identity<AnotherType>
- >
- ));
-
- return 0;
-
- }

Deleted: trunk/libs/tti/test/test_mf_mem_type.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_mem_type.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,202 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_mem_type.hpp"
-#include <boost/detail/lightweight_test.hpp>
-#include <boost/tti/mf/mf_member_type.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- BOOST_TEST((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(AnIntType)<_>,
- boost::mpl::identity<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- NameStruct<_>,
- boost::mpl::identity<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(AnIntTypeReference)<_>,
- boost::mpl::identity<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<_>,
- boost::mpl::identity<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- TheInteger<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(AnotherIntegerType)<_>,
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- SomethingElse<_>,
- boost::mpl::identity<AnotherType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<BOOST_TTI_MEMBER_TYPE_GEN(AnIntType)>,
- boost::mpl::identity<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<NameStruct>,
- boost::mpl::identity<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<BOOST_TTI_MEMBER_TYPE_GEN(AnIntTypeReference)>,
- boost::mpl::identity<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<BOOST_TTI_MEMBER_TYPE_GEN(BType)>,
- boost::mpl::identity<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<TheInteger>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<BOOST_TTI_MEMBER_TYPE_GEN(CType)>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<BOOST_TTI_MEMBER_TYPE_GEN(AnotherIntegerType)>,
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- >
- ::value
- ));
-
- BOOST_TEST((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<SomethingElse>,
- boost::mpl::identity<AnotherType>
- >
- >
- ::value
- ));
-
- return boost::report_errors();
-
- }

Deleted: trunk/libs/tti/test/test_mf_mem_type.hpp
==============================================================================
--- trunk/libs/tti/test/test_mf_mem_type.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,22 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#if !defined(TEST_MF_MEMBER_TYPE_HPP)
-#define TEST_MF_MEMBER_TYPE_HPP
-
-#include "test_structs.hpp"
-#include <boost/tti/member_type.hpp>
-
-BOOST_TTI_MEMBER_TYPE(AnIntType)
-BOOST_TTI_TRAIT_MEMBER_TYPE(NameStruct,AStructType)
-BOOST_TTI_MEMBER_TYPE(AnIntTypeReference)
-BOOST_TTI_MEMBER_TYPE(BType)
-BOOST_TTI_TRAIT_MEMBER_TYPE(TheInteger,AnIntegerType)
-BOOST_TTI_MEMBER_TYPE(CType)
-BOOST_TTI_MEMBER_TYPE(AnotherIntegerType)
-BOOST_TTI_TRAIT_MEMBER_TYPE(SomethingElse,someOtherType)
-
-#endif // TEST_MF_MEMBER_TYPE_HPP

Deleted: trunk/libs/tti/test/test_mf_mem_type_compile.cpp
==============================================================================
--- trunk/libs/tti/test/test_mf_mem_type_compile.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,186 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#include "test_mf_mem_type.hpp"
-#include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_member_type.hpp>
-
-int main()
- {
-
- using namespace boost::mpl::placeholders;
-
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(AnIntType)<_>,
- boost::mpl::identity<AType>
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- NameStruct<_>,
- boost::mpl::identity<AType>
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(AnIntTypeReference)<_>,
- boost::mpl::identity<AType>
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<_>,
- boost::mpl::identity<AType>
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- TheInteger<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(AnotherIntegerType)<_>,
- boost::tti::mf_member_type
- <
- BOOST_TTI_MEMBER_TYPE_GEN(CType)<_>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- SomethingElse<_>,
- boost::mpl::identity<AnotherType>
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<BOOST_TTI_MEMBER_TYPE_GEN(AnIntType)>,
- boost::mpl::identity<AType>
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<NameStruct>,
- boost::mpl::identity<AType>
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<BOOST_TTI_MEMBER_TYPE_GEN(AnIntTypeReference)>,
- boost::mpl::identity<AType>
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<BOOST_TTI_MEMBER_TYPE_GEN(BType)>,
- boost::mpl::identity<AType>
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<TheInteger>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<BOOST_TTI_MEMBER_TYPE_GEN(CType)>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<BOOST_TTI_MEMBER_TYPE_GEN(AnotherIntegerType)>,
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<BOOST_TTI_MEMBER_TYPE_GEN(CType)>,
- BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>
- >
- >
- >
- ));
-
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type
- <
- boost::tti::mf_member_type
- <
- boost::mpl::quote1<SomethingElse>,
- boost::mpl::identity<AnotherType>
- >
- >
- ));
-
- return 0;
-
- }

Modified: trunk/libs/tti/test/test_vm_has_template_cp.cpp
==============================================================================
--- trunk/libs/tti/test/test_vm_has_template_cp.cpp (original)
+++ trunk/libs/tti/test/test_vm_has_template_cp.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -12,24 +12,12 @@
   
 #if BOOST_PP_VARIADICS
 
-#if !defined(BOOST_TTI_VERSION_1_5)
-
   BOOST_TEST(BOOST_TTI_HAS_TEMPLATE_GEN(ATPMemberTemplate)<AType>::value);
   BOOST_TEST(BOOST_TTI_HAS_TEMPLATE_GEN(AMemberTemplate)<AType>::value);
   BOOST_TEST(BOOST_TTI_HAS_TEMPLATE_GEN(SomeMemberTemplate)<AnotherType>::value);
   BOOST_TEST(BOOST_TTI_HAS_TEMPLATE_GEN(SimpleTMP)<AnotherType>::value);
   BOOST_TEST(!BOOST_TTI_HAS_TEMPLATE_GEN(TemplateNotExist)<AnotherType>::value);
 
-#else // BOOST_TTI_VERSION_1_5
-
- BOOST_TEST(BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_GEN(ATPMemberTemplate)<AType>::value);
- BOOST_TEST(BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_GEN(AMemberTemplate)<AType>::value);
- BOOST_TEST(BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_GEN(SomeMemberTemplate)<AnotherType>::value);
- BOOST_TEST(BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_GEN(SimpleTMP)<AnotherType>::value);
- BOOST_TEST(!BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_GEN(TemplateNotExist)<AnotherType>::value);
-
-#endif // !BOOST_TTI_VERSION_1_5
-
   BOOST_TEST(HaveCL<AType>::value);
   BOOST_TEST(HaveAnotherMT<AType>::value);
   BOOST_TEST(ATemplateWithParms<AnotherType>::value);

Modified: trunk/libs/tti/test/test_vm_has_template_cp.hpp
==============================================================================
--- trunk/libs/tti/test/test_vm_has_template_cp.hpp (original)
+++ trunk/libs/tti/test/test_vm_has_template_cp.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -12,9 +12,6 @@
 #if BOOST_PP_VARIADICS
 
 #include "test_structs.hpp"
-
-#if !defined(BOOST_TTI_VERSION_1_5)
-
 #include <boost/tti/has_template.hpp>
 
 BOOST_TTI_HAS_TEMPLATE(ATPMemberTemplate,class)
@@ -28,23 +25,6 @@
 BOOST_TTI_TRAIT_HAS_TEMPLATE(WrongParametersForMP,ManyParameters,class,class,int,class,template <class,class> class InnerTemplate,class,long)
 BOOST_TTI_TRAIT_HAS_TEMPLATE(WrongParameters2ForMP,ManyParameters,class,long,int,class,template <class> class InnerTemplate,class,long)
 
-#else // BOOST_TTI_VERSION_1_5
-
-#include <boost/tti/vm_has_template_check_params.hpp>
-
-BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS(ATPMemberTemplate,class)
-BOOST_TTI_VM_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(HaveCL,CLMemberTemplate,class,class)
-BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS(AMemberTemplate,int)
-BOOST_TTI_VM_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(HaveAnotherMT,AnotherMemberTemplate,int,int)
-BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS(SomeMemberTemplate,class,class,class,class,class,class)
-BOOST_TTI_VM_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(ATemplateWithParms,ManyParameters,class,class,int,class,template <class> class InnerTemplate,class,long)
-BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS(SimpleTMP,class,class,class,class)
-BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS(TemplateNotExist,int,class,template <class> class ATemplate)
-BOOST_TTI_VM_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(WrongParametersForMP,ManyParameters,class,class,int,class,template <class,class> class InnerTemplate,class,long)
-BOOST_TTI_VM_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(WrongParameters2ForMP,ManyParameters,class,long,int,class,template <class> class InnerTemplate,class,long)
-
-#endif // !BOOST_TTI_VERSION_1_5
-
 #endif // BOOST_PP_VARIADICS
 
 #endif // TEST_VM_HAS_TEMPLATE_CHECK_PARAMS_HPP

Modified: trunk/libs/tti/test/test_vm_has_template_cp_compile.cpp
==============================================================================
--- trunk/libs/tti/test/test_vm_has_template_cp_compile.cpp (original)
+++ trunk/libs/tti/test/test_vm_has_template_cp_compile.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -12,8 +12,6 @@
   
 #if BOOST_PP_VARIADICS
 
-#if !defined(BOOST_TTI_VERSION_1_5)
-
   // You can always instantiate without compiler errors
   
   BOOST_TTI_HAS_TEMPLATE_GEN(TemplateNotExist)<AnotherType> aVar1;
@@ -25,21 +23,6 @@
   BOOST_MPL_ASSERT((BOOST_TTI_HAS_TEMPLATE_GEN(SomeMemberTemplate)<AnotherType>));
   BOOST_MPL_ASSERT((BOOST_TTI_HAS_TEMPLATE_GEN(SimpleTMP)<AnotherType>));
   
-#else // BOOST_TTI_VERSION_1_5
-
- // You can always instantiate without compiler errors
-
- BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_GEN(TemplateNotExist)<AnotherType> aVar1;
-
- // Compile time asserts
-
- BOOST_MPL_ASSERT((BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_GEN(ATPMemberTemplate)<AType>));
- BOOST_MPL_ASSERT((BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_GEN(AMemberTemplate)<AType>));
- BOOST_MPL_ASSERT((BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_GEN(SomeMemberTemplate)<AnotherType>));
- BOOST_MPL_ASSERT((BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_GEN(SimpleTMP)<AnotherType>));
-
-#endif // !BOOST_TTI_VERSION_1_5
-
   BOOST_MPL_ASSERT((HaveCL<AType>));
   BOOST_MPL_ASSERT((HaveAnotherMT<AType>));
   BOOST_MPL_ASSERT((ATemplateWithParms<AnotherType>));

Modified: trunk/libs/tti/test/test_vm_has_template_cp_fail.cpp
==============================================================================
--- trunk/libs/tti/test/test_vm_has_template_cp_fail.cpp (original)
+++ trunk/libs/tti/test/test_vm_has_template_cp_fail.cpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
@@ -12,20 +12,10 @@
   
 #if BOOST_PP_VARIADICS
 
-#if !defined(BOOST_TTI_VERSION_1_5)
-
   // TemplateNotExist does not exist at all
   
   BOOST_MPL_ASSERT((BOOST_TTI_HAS_TEMPLATE_GEN(TemplateNotExist)<AType>));
   
-#else // BOOST_TTI_VERSION_1_5
-
- // TemplateNotExist does not exist at all
-
- BOOST_MPL_ASSERT((BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS_GEN(TemplateNotExist)<AType>));
-
-#endif // !BOOST_TTI_VERSION_1_5
-
 #else
   
   BOOST_MPL_ASSERT((boost::mpl::false_));

Deleted: trunk/libs/tti/test/test_vm_mf_has_template_cp.hpp
==============================================================================
--- trunk/libs/tti/test/test_vm_mf_has_template_cp.hpp 2012-11-23 11:35:27 EST (Fri, 23 Nov 2012)
+++ (empty file)
@@ -1,30 +0,0 @@
-
-// (C) Copyright Edward Diener 2011
-// Use, modification and distribution are subject to the Boost Software License,
-// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt).
-
-#if !defined(TEST_VM_MF_HAS_TEMPLATE_CHECK_PARAMS_HPP)
-#define TEST_VM_MF_HAS_TEMPLATE_CHECK_PARAMS_HPP
-
-#include <boost/preprocessor/config/config.hpp>
-
-#if BOOST_PP_VARIADICS
-
-#include "test_structs.hpp"
-#include <boost/tti/vm_has_template_check_params.hpp>
-#include <boost/tti/member_type.hpp>
-
-BOOST_TTI_VM_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(HT_Str,MStrMemberTemplate,class)
-BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS(AnotherMemberTemplate,int,int)
-BOOST_TTI_VM_TRAIT_HAS_TEMPLATE_CHECK_PARAMS(WrongParametersForMP,ManyParameters,class,class,int,class,template <class> class InnerTemplate,class,short)
-BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS(CTManyParameters,class,class,int,short,class,template <class,int> class InnerTemplate,class)
-BOOST_TTI_VM_HAS_TEMPLATE_CHECK_PARAMS(TemplateNotExist,int,class)
-
-BOOST_TTI_MEMBER_TYPE(AStructType)
-BOOST_TTI_TRAIT_MEMBER_TYPE(MT_BType,BType)
-BOOST_TTI_MEMBER_TYPE(CType)
-
-#endif // BOOST_PP_VARIADICS
-
-#endif // TEST_VM_MF_HAS_TEMPLATE_CHECK_PARAMS_HPP


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