|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r69682 - in sandbox/tti: boost/tti boost/tti/detail libs/tti/doc libs/tti/test
From: eldiener_at_[hidden]
Date: 2011-03-08 09:12:34
Author: eldiener
Date: 2011-03-08 09:12:30 EST (Tue, 08 Mar 2011)
New Revision: 69682
URL: http://svn.boost.org/trac/boost/changeset/69682
Log:
Corrected header file names and updated documentation.
Added:
sandbox/tti/boost/tti/comp_mem_fun.hpp
- copied, changed from r69345, /sandbox/tti/boost/tti/member.hpp
sandbox/tti/boost/tti/comp_static_mem_fun.hpp
- copied, changed from r69672, /sandbox/tti/boost/tti/static_member.hpp
sandbox/tti/boost/tti/detail/dcomp_mem_fun.hpp
- copied unchanged from r69345, /sandbox/tti/boost/tti/detail/dmem.hpp
sandbox/tti/boost/tti/detail/dcomp_static_mem_fun.hpp
- copied unchanged from r69672, /sandbox/tti/boost/tti/detail/dstatic_mem.hpp
Removed:
sandbox/tti/boost/tti/detail/dmem.hpp
sandbox/tti/boost/tti/detail/dstatic_mem.hpp
sandbox/tti/boost/tti/member.hpp
sandbox/tti/boost/tti/static_member.hpp
Text files modified:
sandbox/tti/boost/tti/comp_mem_fun.hpp | 2
sandbox/tti/boost/tti/comp_static_mem_fun.hpp | 2
sandbox/tti/boost/tti/tti.hpp | 20 ++++++------
sandbox/tti/boost/tti/tti_vm.hpp | 6 ++--
sandbox/tti/libs/tti/doc/Jamfile.v2 | 29 ++++++++++++++----
sandbox/tti/libs/tti/doc/index.idx | 29 ++++++++++++++----
sandbox/tti/libs/tti/doc/tti_detail.qbk | 60 +++++++++++++++++++++++----------------
sandbox/tti/libs/tti/doc/tti_introduction.qbk | 20 +++++++------
sandbox/tti/libs/tti/doc/tti_meta_classes.qbk | 10 ++++++
sandbox/tti/libs/tti/doc/tti_metafunctions.qbk | 6 ++--
sandbox/tti/libs/tti/doc/tti_nested_type.qbk | 12 ++++----
sandbox/tti/libs/tti/doc/tti_using_mm.qbk | 21 +++----------
sandbox/tti/libs/tti/doc/tti_using_ntm.qbk | 4 +-
sandbox/tti/libs/tti/test/test_has_member.hpp | 2
sandbox/tti/libs/tti/test/test_has_static_member.hpp | 2
15 files changed, 133 insertions(+), 92 deletions(-)
Copied: sandbox/tti/boost/tti/comp_mem_fun.hpp (from r69345, /sandbox/tti/boost/tti/member.hpp)
==============================================================================
--- /sandbox/tti/boost/tti/member.hpp (original)
+++ sandbox/tti/boost/tti/comp_mem_fun.hpp 2011-03-08 09:12:30 EST (Tue, 08 Mar 2011)
@@ -5,7 +5,7 @@
#include <boost/mpl/apply.hpp>
#include <boost/mpl/identity.hpp>
#include <boost/preprocessor/cat.hpp>
-#include "detail/dmem.hpp"
+#include "detail/dcomp_mem_fun.hpp"
/*
Copied: sandbox/tti/boost/tti/comp_static_mem_fun.hpp (from r69672, /sandbox/tti/boost/tti/static_member.hpp)
==============================================================================
--- /sandbox/tti/boost/tti/static_member.hpp (original)
+++ sandbox/tti/boost/tti/comp_static_mem_fun.hpp 2011-03-08 09:12:30 EST (Tue, 08 Mar 2011)
@@ -5,7 +5,7 @@
#include <boost/mpl/apply.hpp>
#include <boost/mpl/identity.hpp>
#include <boost/preprocessor/cat.hpp>
-#include "detail/dstatic_mem.hpp"
+#include "detail/dcomp_static_mem_fun.hpp"
/*
Deleted: sandbox/tti/boost/tti/detail/dmem.hpp
==============================================================================
--- sandbox/tti/boost/tti/detail/dmem.hpp 2011-03-08 09:12:30 EST (Tue, 08 Mar 2011)
+++ (empty file)
@@ -1,382 +0,0 @@
-#if !defined(TTI_DETAIL_MEM_HPP)
-#define TTI_DETAIL_MEM_HPP
-
-#include <boost/config.hpp>
-#include <boost/mpl/at.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/quote.hpp>
-#include <boost/function_types/is_member_object_pointer.hpp>
-#include <boost/function_types/parameter_types.hpp>
-#include <boost/type_traits/remove_const.hpp>
-#include <boost/type_traits/detail/yes_no_type.hpp>
-
-#if defined(BOOST_MSVC)
-
-#if defined(BOOST_NO_NULLPTR)
-
-#define TTI_DETAIL_TRAIT_HAS_MEMBER(trait,name) \
- template<class T> \
- struct trait \
- { \
- template<class> \
- struct class_of; \
- \
- template<class R,class C> \
- struct class_of<R C::*> \
- { \
- typedef C type; \
- }; \
- \
- template<class> \
- struct return_of; \
- \
- template<class R,class C> \
- struct return_of<R C::*> \
- { \
- typedef R type; \
- }; \
- \
- template<bool,typename U> \
- struct menable_if; \
- \
- template<typename U> \
- struct menable_if<true,U> \
- { \
- typedef U type; \
- }; \
- \
- template<typename U,typename V> \
- static ::boost::type_traits::yes_type check2(V U::*); \
- \
- template<typename U,typename V> \
- static ::boost::type_traits::no_type check2(U); \
- \
- template<class F> \
- struct class_type \
- { \
- typedef typename \
- boost::remove_const \
- < \
- typename \
- boost::mpl::at \
- < \
- typename \
- boost::function_types::parameter_types \
- < \
- F, \
- boost::mpl::quote1 \
- < \
- boost::mpl::identity \
- > \
- > \
- ::type, \
- boost::mpl::int_<0> \
- >::type \
- >::type \
- type; \
- }; \
- \
- template<T> \
- struct helper; \
- \
- template<typename U,typename V> \
- static typename \
- menable_if \
- < \
- sizeof(check2<U,V>(&U::name))==sizeof(::boost::type_traits::yes_type), \
- ::boost::type_traits::yes_type \
- > \
- ::type \
- has_matching_member(int); \
- \
- template<typename U,typename V> \
- static ::boost::type_traits::no_type has_matching_member(...); \
- \
- template<class U> \
- static ::boost::type_traits::yes_type check(helper<&U::name> *); \
- \
- template<class U> \
- static ::boost::type_traits::no_type check(...); \
- \
- template<class F> \
- struct ttc_md \
- { \
- typedef boost::mpl::bool_<sizeof(has_matching_member<typename class_of<F>::type,typename return_of<F>::type>(0))==sizeof(::boost::type_traits::yes_type)> type; \
- }; \
- \
- template<class F> \
- struct ttc_mf \
- { \
- typedef boost::mpl::bool_<sizeof(check<typename class_type<F>::type>(0))==sizeof(::boost::type_traits::yes_type)> type; \
- }; \
- \
- template<class F> \
- struct type_to_check \
- { \
- typedef typename \
- boost::mpl::eval_if \
- < \
- boost::function_types::is_member_object_pointer<F>, \
- ttc_md<F>, \
- ttc_mf<F> \
- >::type \
- type; \
- }; \
- \
- typedef typename type_to_check<T>::type type; \
- \
- BOOST_STATIC_CONSTANT(bool,value=type::value); \
- \
- }; \
-/**/
-
-#else // !defined(BOOST_NO_NULLPTR)
-
-#define TTI_DETAIL_TRAIT_HAS_MEMBER(trait,name) \
- template<class T> \
- struct trait \
- { \
- template<class> \
- struct class_of; \
- \
- template<class R,class C> \
- struct class_of<R C::*> \
- { \
- typedef C type; \
- }; \
- \
- template<class> \
- struct return_of; \
- \
- template<class R,class C> \
- struct return_of<R C::*> \
- { \
- typedef R type; \
- }; \
- \
- template<bool,typename U> \
- struct menable_if; \
- \
- template<typename U> \
- struct menable_if<true,U> \
- { \
- typedef U type; \
- }; \
- \
- template<typename U,typename V> \
- static ::boost::type_traits::yes_type check2(V U::*); \
- \
- template<typename U,typename V> \
- static ::boost::type_traits::no_type check2(U); \
- \
- template<class F> \
- struct class_type \
- { \
- typedef typename \
- boost::remove_const \
- < \
- typename \
- boost::mpl::at \
- < \
- typename \
- boost::function_types::parameter_types \
- < \
- F, \
- boost::mpl::quote1 \
- < \
- boost::mpl::identity \
- > \
- > \
- ::type, \
- boost::mpl::int_<0> \
- >::type \
- >::type \
- type; \
- }; \
- \
- template<T> \
- struct helper; \
- \
- template<typename U,typename V> \
- static typename \
- menable_if \
- < \
- sizeof(check2<U,V>(&U::name))==sizeof(::boost::type_traits::yes_type), \
- ::boost::type_traits::yes_type \
- > \
- ::type \
- has_matching_member(int); \
- \
- template<typename U,typename V> \
- static ::boost::type_traits::no_type has_matching_member(...); \
- \
- template<class U> \
- static ::boost::type_traits::yes_type check(helper<&U::name> *); \
- \
- template<class U> \
- static ::boost::type_traits::no_type check(...); \
- \
- template<class F> \
- struct ttc_md \
- { \
- typedef boost::mpl::bool_<sizeof(has_matching_member<typename class_of<F>::type,typename return_of<F>::type>(0))==sizeof(::boost::type_traits::yes_type)> type; \
- }; \
- \
- template<class F> \
- struct ttc_mf \
- { \
- typedef boost::mpl::bool_<sizeof(check<typename class_type<F>::type>(nullptr))==sizeof(::boost::type_traits::yes_type)> type; \
- }; \
- \
- template<class F> \
- struct type_to_check \
- { \
- typedef typename \
- boost::mpl::eval_if \
- < \
- boost::function_types::is_member_object_pointer<F>, \
- ttc_md<F>, \
- ttc_mf<F> \
- >::type \
- type; \
- }; \
- \
- typedef typename type_to_check<T>::type type; \
- \
- BOOST_STATIC_CONSTANT(bool,value=type::value); \
- \
- }; \
-/**/
-
-#endif // defined(BOOST_NO_NULLPTR)
-
-#else // !defined(BOOST_MSVC)
-
-#if defined(BOOST_NO_NULLPTR)
-
-#define TTI_DETAIL_TRAIT_HAS_MEMBER(trait,name) \
- template<class T> \
- struct trait \
- { \
- template<class> \
- struct class_of; \
- \
- template<class R,class C> \
- struct class_of<R C::*> \
- { \
- typedef C type; \
- }; \
- \
- template<class F> \
- struct class_type \
- { \
- typedef typename \
- boost::mpl::eval_if \
- < \
- boost::function_types::is_member_object_pointer<F>, \
- class_of<F>, \
- boost::remove_const \
- < \
- typename \
- boost::mpl::at \
- < \
- typename \
- boost::function_types::parameter_types \
- < \
- F, \
- boost::mpl::quote1 \
- < \
- boost::mpl::identity \
- > \
- > \
- ::type, \
- boost::mpl::int_<0> \
- >::type \
- > \
- >::type \
- type; \
- }; \
- \
- template<T> \
- struct helper; \
- \
- template<class U> \
- static ::boost::type_traits::yes_type check(helper<&U::name> *); \
- \
- template<class U> \
- static ::boost::type_traits::no_type check(...); \
- \
- BOOST_STATIC_CONSTANT(bool,value=sizeof(check<typename class_type<T>::type>(0))==sizeof(::boost::type_traits::yes_type)); \
- \
- typedef boost::mpl::bool_<value> type; \
- }; \
-/**/
-
-#else // !defined(BOOST_NO_NULLPTR)
-
-#define TTI_DETAIL_TRAIT_HAS_MEMBER(trait,name) \
- template<class T> \
- struct trait \
- { \
- template<class> \
- struct class_of; \
- \
- template<class R,class C> \
- struct class_of<R C::*> \
- { \
- typedef C type; \
- }; \
- \
- template<class F> \
- struct class_type \
- { \
- typedef typename \
- boost::mpl::eval_if \
- < \
- boost::function_types::is_member_object_pointer<F>, \
- class_of<F>, \
- boost::remove_const \
- < \
- typename \
- boost::mpl::at \
- < \
- typename \
- boost::function_types::parameter_types \
- < \
- F, \
- boost::mpl::quote1 \
- < \
- boost::mpl::identity \
- > \
- > \
- ::type, \
- boost::mpl::int_<0> \
- >::type \
- > \
- >::type \
- type; \
- }; \
- \
- template<T> \
- struct helper; \
- \
- template<class U> \
- static ::boost::type_traits::yes_type check(helper<&U::name> *); \
- \
- template<class U> \
- static ::boost::type_traits::no_type check(...); \
- \
- BOOST_STATIC_CONSTANT(bool,value=sizeof(check<typename class_type<T>::type>(nullptr))==sizeof(::boost::type_traits::yes_type)); \
- \
- typedef boost::mpl::bool_<value> type; \
- }; \
-/**/
-
-#endif // defined(BOOST_NO_NULLPTR)
-
-#endif // defined(BOOST_MSVC)
-
-#endif // TTI_DETAIL_MEM_HPP
Deleted: sandbox/tti/boost/tti/detail/dstatic_mem.hpp
==============================================================================
--- sandbox/tti/boost/tti/detail/dstatic_mem.hpp 2011-03-08 09:12:30 EST (Tue, 08 Mar 2011)
+++ (empty file)
@@ -1,97 +0,0 @@
-#if !defined(TTI_DETAIL_STATIC_MEM_HPP)
-#define TTI_DETAIL_STATIC_MEM_HPP
-
-#include <boost/config.hpp>
-#include <boost/function_types/is_function.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/type_traits/detail/yes_no_type.hpp>
-
-#if defined(BOOST_NO_NULLPTR)
-
-#define TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER(trait,name) \
- template<class T,class Type> \
- struct trait \
- { \
- template<Type *> \
- struct helper; \
- \
- template<class U> \
- static ::boost::type_traits::yes_type check(helper<&U::name> *); \
- \
- template<class U> \
- static ::boost::type_traits::no_type check(...); \
- \
- BOOST_STATIC_CONSTANT(bool,value=(boost::function_types::is_function<Type>::value) && (sizeof(check<T>(0))==sizeof(::boost::type_traits::yes_type))); \
- \
- typedef boost::mpl::bool_<value> type; \
- }; \
-/**/
-
-#define TTI_DETAIL_MTFC_TRAIT_HAS_STATIC_MEMBER(trait,name) \
- struct trait \
- { \
- template<class T,class Type> \
- struct apply \
- { \
- template<Type *> \
- struct helper; \
- \
- template<class U> \
- static ::boost::type_traits::yes_type check(helper<&U::name> *); \
- \
- template<class U> \
- static ::boost::type_traits::no_type check(...); \
- \
- BOOST_STATIC_CONSTANT(bool,value=(boost::function_types::is_function<Type>::value) && (sizeof(check<T>(0))==sizeof(::boost::type_traits::yes_type))); \
- \
- typedef boost::mpl::bool_<value> type; \
- }; \
- }; \
-/**/
-
-#else // !defined(BOOST_NO_NULLPTR)
-
-#define TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER(trait,name) \
- template<class T,class Type> \
- struct trait \
- { \
- template<Type *> \
- struct helper; \
- \
- template<class U> \
- static ::boost::type_traits::yes_type check(helper<&U::name> *); \
- \
- template<class U> \
- static ::boost::type_traits::no_type check(...); \
- \
- BOOST_STATIC_CONSTANT(bool,value=(boost::function_types::is_function<Type>::value) && (sizeof(check<T>(nullptr))==sizeof(::boost::type_traits::yes_type))); \
- \
- typedef boost::mpl::bool_<value> type; \
- }; \
-/**/
-
-#define TTI_DETAIL_MTFC_TRAIT_HAS_STATIC_MEMBER(trait,name) \
- struct trait \
- { \
- template<class T,class Type> \
- struct apply \
- { \
- template<Type *> \
- struct helper; \
- \
- template<class U> \
- static ::boost::type_traits::yes_type check(helper<&U::name> *); \
- \
- template<class U> \
- static ::boost::type_traits::no_type check(...); \
- \
- BOOST_STATIC_CONSTANT(bool,value=(boost::function_types::is_function<Type>::value) && (sizeof(check<T>(nullptr))==sizeof(::boost::type_traits::yes_type))); \
- \
- typedef boost::mpl::bool_<value> type; \
- }; \
- }; \
-/**/
-
-#endif // defined(BOOST_NO_NULLPTR)
-
-#endif // TTI_DETAIL_STATIC_MEM_HPP
Deleted: sandbox/tti/boost/tti/member.hpp
==============================================================================
--- sandbox/tti/boost/tti/member.hpp 2011-03-08 09:12:30 EST (Tue, 08 Mar 2011)
+++ (empty file)
@@ -1,142 +0,0 @@
-#if !defined(TTI_MEMBER_HPP)
-#define TTI_MEMBER_HPP
-
-#include <boost/config.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include "detail/dmem.hpp"
-
-/*
-
- The succeeding comments in this file are in doxygen format.
-
-*/
-
-/** \file
-*/
-
-/// Expands to a metafunction which tests whether a member data or member function with a particular name and type exists.
-/**
-
- trait = the name of the metafunction within the tti namespace.
-
- name = the name of the inner member.
-
- returns = a metafunction called "boost::tti::trait" where 'trait' is the macro parameter.<br />
-
- The metafunction types and return:
-
- T = the type, in the form of a member data pointer or member function pointer,
- in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' exists, with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_TRAIT_HAS_MEMBER(trait,name) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_MEMBER(trait,name) \
- } \
- template<class T> \
- struct trait : \
- detail::trait<T> \
- { \
- }; \
- } \
- } \
-/**/
-
-/// Expands to a metafunction class which tests whether a member data or member function with a particular name and type exists.
-/**
-
- trait = the name of the metafunction class within the tti namespace.
-
- name = the name of the inner member.
-
- returns = a metafunction class called "boost::tti::trait" where 'trait' is the macro parameter.
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the type, in the form of a member data pointer or member function pointer,
- in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' exists, with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_TRAIT_HAS_MEMBER(trait,name) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_MEMBER(trait,name) \
- } \
- struct trait \
- { \
- template<class T> \
- struct apply : \
- detail::trait<T> \
- { \
- }; \
- }; \
- } \
- } \
-/**/
-
-/// Expands to a metafunction which tests whether a member data or member function with a particular name and type exists.
-/**
-
- name = the name of the inner member.
-
- returns = a metafunction called "boost::tti::has_member_name" where 'name' is the macro parameter.
-
- The metafunction types and return:
-
- T = the type, in the form of a member data pointer or member function pointer,
- in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' exists, with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_HAS_MEMBER(name) \
- BOOST_TTI_TRAIT_HAS_MEMBER \
- ( \
- BOOST_PP_CAT(has_member_,name), \
- name \
- ) \
-/**/
-
-/// Expands to a metafunction class which tests whether a member data or member function with a particular name and type exists.
-/**
-
- name = the name of the inner member.
-
- returns = a metafunction class called "boost::tti::mtfc_has_member_name" where 'name' is the macro parameter.
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the type, in the form of a member data pointer or member function pointer,
- in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' exists, with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_HAS_MEMBER(name) \
- BOOST_TTI_MTFC_TRAIT_HAS_MEMBER \
- ( \
- BOOST_PP_CAT(mtfc_has_member_,name), \
- name \
- ) \
-/**/
-
-#endif // TTI_MEMBER_HPP
Deleted: sandbox/tti/boost/tti/static_member.hpp
==============================================================================
--- sandbox/tti/boost/tti/static_member.hpp 2011-03-08 09:12:30 EST (Tue, 08 Mar 2011)
+++ (empty file)
@@ -1,159 +0,0 @@
-#if !defined(TTI_STATIC_MEMBER_HPP)
-#define TTI_STATIC_MEMBER_HPP
-
-#include <boost/config.hpp>
-#include <boost/mpl/apply.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include "detail/dstatic_mem.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.
-
- returns = a metafunction called "boost::tti::trait" where 'trait' is the macro parameter.
-
- The metafunction types and return:
-
- T = the enclosing type.
-
- Type = the static member function type,
- in the form of a composite function type - 'return_type (parameter_types...)',
- in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' exists within the enclosing type,
- with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_TRAIT_HAS_STATIC_MEMBER(trait,name) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_TRAIT_HAS_STATIC_MEMBER(trait,name) \
- } \
- template<class T,class Type> \
- struct trait : \
- detail::trait<T,Type> \
- { \
- }; \
- } \
- } \
-/**/
-
-/// Expands to a metafunction class which tests whether a static member function with a particular name and composite type exists.
-/**
-
- trait = the name of the metafunction class within the tti namespace.
-
- name = the name of the inner member.
-
- returns = a metafunction class called "boost::tti::trait" where 'trait' is the macro parameter.<br />
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type.
-
- Type = the static member function type,
- in the form of a composite function type - 'return_type (parameter_types...)',
- in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' exists within the enclosing type,
- with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_TRAIT_HAS_STATIC_MEMBER(trait,name) \
-namespace boost \
- { \
- namespace tti \
- { \
- namespace detail \
- { \
- TTI_DETAIL_MTFC_TRAIT_HAS_STATIC_MEMBER(trait,name) \
- } \
- struct trait \
- { \
- template<class T,class Type> \
- struct apply : \
- detail::trait::apply<T,Type> \
- { \
- }; \
- }; \
- } \
- } \
-/**/
-
-
-/// Expands to a metafunction which tests whether a static member function with a particular name and composite type exists.
-/**
-
- name = the name of the inner member.
-
- returns = a metafunction called "boost::tti::has_static_member_name" where 'name' is the macro parameter.<br />
-
- The metafunction types and return:
-
- T = the enclosing type.
-
- Type = the static member function type,
- in the form of a composite function type - 'return_type (parameter_types...)',
- in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' exists within the enclosing type,
- with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_HAS_STATIC_MEMBER(name) \
- BOOST_TTI_TRAIT_HAS_STATIC_MEMBER \
- ( \
- BOOST_PP_CAT(has_static_member_,name), \
- name \
- ) \
-/**/
-
-/// Expands to a metafunction class which tests whether a static member function with a particular name and composite type exists.
-/**
-
- name = the name of the inner member.
-
- returns = a metafunction class called "boost::tti::mtfc_has_static_member_name" where 'name' is the macro parameter.<br />
-
- The metafunction class's 'apply' metafunction types and return:
-
- T = the enclosing type.
-
- Type = the static member function type,
- in the form of a composite function type - 'return_type (parameter_types...)',
- in which to look for our 'name'.
-
- returns = 'value' is true if the 'name' exists within the enclosing type,
- with the appropriate type,
- otherwise 'value' is false.
-
-*/
-#define BOOST_TTI_MTFC_HAS_STATIC_MEMBER(name) \
- BOOST_TTI_MTFC_TRAIT_HAS_STATIC_MEMBER \
- ( \
- BOOST_PP_CAT(mtfc_has_static_member_,name), \
- name \
- ) \
-/**/
-
-#endif // TTI_STATIC_MEMBER_HPP
Modified: sandbox/tti/boost/tti/tti.hpp
==============================================================================
--- sandbox/tti/boost/tti/tti.hpp (original)
+++ sandbox/tti/boost/tti/tti.hpp 2011-03-08 09:12:30 EST (Tue, 08 Mar 2011)
@@ -1,23 +1,23 @@
#if !defined(TT_INTROSPECTION_HPP)
#define TT_INTROSPECTION_HPP
-#include "type.hpp"
-#include "mem_type.hpp"
-#include "template.hpp"
-#include "template_params.hpp"
-#include "member.hpp"
+#include "comp_mem_fun.hpp"
+#include "comp_mem_fun_template.hpp"
+#include "comp_mem_fun_template_params.hpp"
+#include "comp_static_mem_fun.hpp"
+#include "comp_static_mem_fun_template.hpp"
+#include "comp_static_mem_fun_template_params.hpp"
#include "mem_data.hpp"
#include "mem_fun.hpp"
#include "mem_fun_template.hpp"
#include "mem_fun_template_params.hpp"
-#include "comp_mem_fun_template.hpp"
-#include "comp_mem_fun_template_params.hpp"
-#include "static_member.hpp"
+#include "mem_type.hpp"
#include "static_mem_data.hpp"
#include "static_mem_fun.hpp"
#include "static_mem_fun_template.hpp"
#include "static_mem_fun_template_params.hpp"
-#include "comp_static_mem_fun_template.hpp"
-#include "comp_static_mem_fun_template_params.hpp"
+#include "template.hpp"
+#include "template_params.hpp"
+#include "type.hpp"
#endif // TT_INTROSPECTION_HPP
Modified: sandbox/tti/boost/tti/tti_vm.hpp
==============================================================================
--- sandbox/tti/boost/tti/tti_vm.hpp (original)
+++ sandbox/tti/boost/tti/tti_vm.hpp 2011-03-08 09:12:30 EST (Tue, 08 Mar 2011)
@@ -1,10 +1,10 @@
#if !defined(TT_INTROSPECTION_VM_HPP)
#define TT_INTROSPECTION_VM_HPP
-#include "vm_template_params.hpp"
-#include "vm_mem_fun_template.hpp"
-#include "vm_static_mem_fun_template.hpp"
#include "vm_comp_mem_fun_template.hpp"
#include "vm_comp_static_mem_fun_template.hpp"
+#include "vm_mem_fun_template.hpp"
+#include "vm_static_mem_fun_template.hpp"
+#include "vm_template_params.hpp"
#endif // TT_INTROSPECTION_VM_HPP
Modified: sandbox/tti/libs/tti/doc/Jamfile.v2
==============================================================================
--- sandbox/tti/libs/tti/doc/Jamfile.v2 (original)
+++ sandbox/tti/libs/tti/doc/Jamfile.v2 2011-03-08 09:12:30 EST (Tue, 08 Mar 2011)
@@ -35,17 +35,32 @@
doxygen tti_reference
:
- $(here)/../../../boost/tti/type.hpp
- $(here)/../../../boost/tti/template.hpp
- $(here)/../../../boost/tti/template_params.hpp
- $(here)/../../../boost/tti/vm_template_params.hpp
- $(here)/../../../boost/tti/member.hpp
+ $(here)/../../../boost/tti/comp_mem_fun.hpp
+ $(here)/../../../boost/tti/comp_mem_fun_template.hpp
+ $(here)/../../../boost/tti/comp_mem_fun_template_params.hpp
+ $(here)/../../../boost/tti/comp_static_mem_fun.hpp
+ $(here)/../../../boost/tti/comp_static_mem_fun_template.hpp
+ $(here)/../../../boost/tti/comp_static_mem_fun_template_params.hpp
$(here)/../../../boost/tti/mem_data.hpp
$(here)/../../../boost/tti/mem_fun.hpp
- $(here)/../../../boost/tti/static_member.hpp
- $(here)/../../../boost/tti/static_mem_fun.hpp
+ $(here)/../../../boost/tti/mem_fun_template.hpp
+ $(here)/../../../boost/tti/mem_fun_template_params.hpp
$(here)/../../../boost/tti/mem_type.hpp
+ $(here)/../../../boost/tti/mf_mem_fun_template.hpp
+ $(here)/../../../boost/tti/mf_static_mem_fun_template.hpp
$(here)/../../../boost/tti/mf_template_params.hpp
+ $(here)/../../../boost/tti/static_mem_data.hpp
+ $(here)/../../../boost/tti/static_mem_fun.hpp
+ $(here)/../../../boost/tti/static_mem_fun_template.hpp
+ $(here)/../../../boost/tti/static_mem_fun_template_params.hpp
+ $(here)/../../../boost/tti/template.hpp
+ $(here)/../../../boost/tti/template_params.hpp
+ $(here)/../../../boost/tti/type.hpp
+ $(here)/../../../boost/tti/vm_comp_mem_fun_template.hpp
+ $(here)/../../../boost/tti/vm_comp_static_mem_fun_template.hpp
+ $(here)/../../../boost/tti/vm_mem_fun_template.hpp
+ $(here)/../../../boost/tti/vm_static_mem_fun_template.hpp
+ $(here)/../../../boost/tti/vm_template_params.hpp
:
<doxygen:param>PROJECT_NAME="TTI"
<doxygen:param>PROJECT_NUMBER=1
Modified: sandbox/tti/libs/tti/doc/index.idx
==============================================================================
--- sandbox/tti/libs/tti/doc/index.idx (original)
+++ sandbox/tti/libs/tti/doc/index.idx 2011-03-08 09:12:30 EST (Tue, 08 Mar 2011)
@@ -1,11 +1,26 @@
-!scan boost/tti/type.hpp
-!scan boost/tti/template.hpp
-!scan boost/tti/template_params.hpp
-!scan boost/tti/vm_template_params.hpp
-!scan boost/tti/member.hpp
+!scan boost/tti/comp_mem_fun.hpp
+!scan boost/tti/comp_mem_fun_template.hpp
+!scan boost/tti/comp_mem_fun_template_params.hpp
+!scan boost/tti/comp_static_mem_fun.hpp
+!scan boost/tti/comp_static_mem_fun_template.hpp
+!scan boost/tti/comp_static_mem_fun_template_params.hpp
!scan boost/tti/mem_data.hpp
!scan boost/tti/mem_fun.hpp
-!scan boost/tti/static_member.hpp
-!scan boost/tti/static_mem_fun.hpp
+!scan boost/tti/mem_fun_template.hpp
+!scan boost/tti/mem_fun_template_params.hpp
!scan boost/tti/mem_type.hpp
+!scan boost/tti/mf_mem_fun_template.hpp
+!scan boost/tti/mf_static_mem_fun_template.hpp
!scan boost/tti/mf_template_params.hpp
+!scan boost/tti/static_mem_data.hpp
+!scan boost/tti/static_mem_fun.hpp
+!scan boost/tti/static_mem_fun_template.hpp
+!scan boost/tti/static_mem_fun_template_params.hpp
+!scan boost/tti/template.hpp
+!scan boost/tti/template_params.hpp
+!scan boost/tti/type.hpp
+!scan boost/tti/vm_comp_mem_fun_template.hpp
+!scan boost/tti/vm_comp_static_mem_fun_template.hpp
+!scan boost/tti/vm_mem_fun_template.hpp
+!scan boost/tti/vm_static_mem_fun_template.hpp
+!scan boost/tti/vm_template_params.hpp
Modified: sandbox/tti/libs/tti/doc/tti_detail.qbk
==============================================================================
--- sandbox/tti/libs/tti/doc/tti_detail.qbk (original)
+++ sandbox/tti/libs/tti/doc/tti_detail.qbk 2011-03-08 09:12:30 EST (Tue, 08 Mar 2011)
@@ -95,23 +95,7 @@
[[headerref boost/tti/vm_template_params.hpp vm\_template\_params.hpp]]
]
[
- [Member data or function]
- [
- [macroref BOOST_TTI_HAS_MEMBER](name)
- ]
- [
- boost::tti::has\_member\_'name'
-
- class T = pointer to data or function member
-
- The form for T is 'Type Class::*' for member data
-
- The form for T is 'ReturnType (Class::*)(Zero or more comma-separated parameter types)' for member function
- ]
- [[headerref boost/tti/member.hpp member.hpp]]
- ]
- [
- [Member data as individual types]
+ [Member data]
[
[macroref BOOST_TTI_HAS_MEMBER_DATA](name)
]
@@ -146,22 +130,32 @@
[[headerref boost/tti/mem_fun.hpp mem\_fun.hpp]]
]
[
- [Static member data or static member function]
+ [Member function as a composite type]
[
- [macroref BOOST_TTI_HAS_STATIC_MEMBER](name)
+ [macroref BOOST_TTI_HAS_MEMBER](name)
]
[
- boost::tti::has\_static\_member\_'name'
+ boost::tti::has\_member\_'name'
- class T = enclosing type
+ class T = pointer to data or function member
- class Type = data or function type
+ The form for T is 'ReturnType (Class::*)(Zero or more comma-separated parameter types)' for member function
+ ]
+ [[headerref boost/tti/comp_mem_fun.hpp comp\_mem\_fun.hpp]]
+ ]
+ [
+ [Static member data]
+ [
+ [macroref BOOST_TTI_HAS_STATIC_MEMBER_DATA](name)
+ ]
+ [
+ boost::tti::has\_static\_member\_data\_'name'
- The form for Type is just 'Type' as a data type
+ class T = enclosing type
- The form for Type is 'ReturnType (Zero or more comma-separated parameter types)' as a function type
+ class Type = data type
]
- [[headerref boost/tti/static_member.hpp static\_member.hpp]]
+ [[headerref boost/tti/static_mem_data.hpp static\_mem\_data.hpp]]
]
[
[Static member function as individual types]
@@ -184,6 +178,22 @@
]
[[headerref boost/tti/static_mem_fun.hpp static\_mem\_fun.hpp]]
]
+ [
+ [Static member function as a composite type]
+ [
+ [macroref BOOST_TTI_HAS_STATIC_MEMBER](name)
+ ]
+ [
+ boost::tti::has\_static\_member\_'name'
+
+ class T = enclosing type
+
+ class Type = function type
+
+ The form for Type is 'ReturnType (Zero or more comma-separated parameter types)' as a function type
+ ]
+ [[headerref boost/tti/comp_static_mem_fun.hpp comp\_static\_mem\_fun.hpp]]
+ ]
]
There is one other macro which creates a metafunction which does not introspect
Modified: sandbox/tti/libs/tti/doc/tti_introduction.qbk
==============================================================================
--- sandbox/tti/libs/tti/doc/tti_introduction.qbk (original)
+++ sandbox/tti/libs/tti/doc/tti_introduction.qbk 2011-03-08 09:12:30 EST (Tue, 08 Mar 2011)
@@ -67,7 +67,7 @@
# The main header, which does not require using the library
support for variadic macros, is 'tti.hpp'.
This can be used for the vast majority of functionality in the library.
-# The secondary header, which uses a very small subset of the
+# The secondary header, which uses a small subset of the
library functionality, providing an alternate use of a particular
macro with variadic macro support, is 'tti_vm.hpp'.
@@ -97,10 +97,6 @@
[[headerref boost/tti/vm_template_params.hpp vm\_template\_params.hpp]]
]
[
- [Member]
- [[headerref boost/tti/member.hpp member.hpp]]
- ]
- [
[Member data]
[[headerref boost/tti/mem_data.hpp mem\_data.hpp]]
]
@@ -109,24 +105,30 @@
[[headerref boost/tti/mem_fun.hpp mem\_fun.hpp]]
]
[
+ [Member function - composite syntax]
+ [[headerref boost/tti/comp_mem_fun.hpp comp\_mem\_fun.hpp]]
+ ]
+ [
[Static member data]
- [[headerref boost/tti/static_member.hpp static\_member.hpp]]
+ [[headerref boost/tti/static_mem_data.hpp static\_mem\_data.hpp]]
]
[
[Static member function]
[[headerref boost/tti/static_mem_fun.hpp static\_mem\_fun.hpp]]
]
[
+ [Static member function - composite syntax]
+ [[headerref boost/tti/comp_static_mem_fun.hpp comp\_static\_mem\_fun.hpp]]
+ ]
+ [
[Member type]
[[headerref boost/tti/mem_type.hpp mem\_type.hpp]]
]
]
If the general header file 'tti_vm.hpp'
-or the specific header files
+or the specific header file
[headerref boost/tti/vm_template_params.hpp 'vm\_template\_params.hpp'],
-[headerref boost/tti/vm_mem_fun_template.hpp 'vm\_mem\_fun\_template.hpp'],
-[headerref boost/tti/vm_static_mem_fun_template.hpp 'vm\_static\_mem\_fun\_template.hpp'],
are used the library is also dependent
on the variadic\_macro\_data library currently in the sandbox.
If this header is not used there is no need to download
Modified: sandbox/tti/libs/tti/doc/tti_meta_classes.qbk
==============================================================================
--- sandbox/tti/libs/tti/doc/tti_meta_classes.qbk (original)
+++ sandbox/tti/libs/tti/doc/tti_meta_classes.qbk 2011-03-08 09:12:30 EST (Tue, 08 Mar 2011)
@@ -125,6 +125,16 @@
[boost::tti::'trait']
]
[
+ [[macroref BOOST_TTI_HAS_STATIC_MEMBER_DATA]]
+ [[macroref BOOST_TTI_MTFC_HAS_STATIC_MEMBER_DATA]]
+ [boost::tti::mtfc\_has\_static\_member\_data\_'name']
+ ]
+ [
+ [[macroref BOOST_TTI_TRAIT_HAS_STATIC_MEMBER_DATA]]
+ [[macroref BOOST_TTI_MTFC_TRAIT_HAS_STATIC_MEMBER_DATA]]
+ [boost::tti::'trait']
+ ]
+ [
[[macroref BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION]]
[[macroref BOOST_TTI_MTFC_HAS_STATIC_MEMBER_FUNCTION]]
[boost::tti::mtfc\_has\_static\_member\_function\_'name']
Modified: sandbox/tti/libs/tti/doc/tti_metafunctions.qbk
==============================================================================
--- sandbox/tti/libs/tti/doc/tti_metafunctions.qbk (original)
+++ sandbox/tti/libs/tti/doc/tti_metafunctions.qbk 2011-03-08 09:12:30 EST (Tue, 08 Mar 2011)
@@ -180,14 +180,14 @@
[classref boost::tti::mf_has_static_data]
]
[
- class HasStaticMember = macro metafunction as lambda expression
+ 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]
- [[headerref boost/tti/static_member.hpp static\_member.hpp]]
+ [BOOST\_TTI\_HAS\_STATIC\_MEMBER\_DATA]
+ [[headerref boost/tti/static_mem_data.hpp static\_mem\_data.hpp]]
]
[
[Static function]
Modified: sandbox/tti/libs/tti/doc/tti_nested_type.qbk
==============================================================================
--- sandbox/tti/libs/tti/doc/tti_nested_type.qbk (original)
+++ sandbox/tti/libs/tti/doc/tti_nested_type.qbk 2011-03-08 09:12:30 EST (Tue, 08 Mar 2011)
@@ -107,11 +107,11 @@
As one example, let's ask whether FindType has a static member data called MyData of type 'int'. We add:
- BOOST_TTI_HAS_STATIC_MEMBER(MyData)
+ BOOST_TTI_HAS_STATIC_MEMBER_DATA(MyData)
Next we create our metafunction:
- boost::tti::has_static_member_MyData
+ boost::tti::has_static_member_data_MyData
<
MyFindType,
int
@@ -122,7 +122,7 @@
exist as we have specified it as a type. If we had tried to do this using normal C++ nested type
notation our metafunction code above would be:
- boost::tti::has_static_member_MyData
+ boost::tti::has_static_member_data_MyData
<
typename T::AType::BType::CType::FindType,
int
@@ -175,11 +175,11 @@
but similar functionality among our macro metafunctions to determine whether a member data, a member function, or a static member
function exists within an enclosing type.
-In the more general case, when using BOOST\_TTI\_HAS\_MEMBER and BOOST\_TTI\_HAS\_STATIC\_MEMBER, the signature for the member
-data, member function, and the function portion of a static member function is a composite type. This makes
+In the more general case, when using BOOST\_TTI\_HAS\_MEMBER and BOOST\_TTI\_HAS\_STATIC\_MEMBER,
+the signature for the member function and the static member function is a composite type. This makes
for a syntactical notation which is easy to specify, but because of that composite type notation we
can not use the nested type functionality in BOOST\_TTI\_MEMBER\_TYPE very easily. But
-when we use the BOOST\_TTI\_HAS\_MEMBER\_DATA, BOOST\_TTI\_HAS\_MEMBER\_FUNCTION, and BOOST\_TTI\_HAS\_STATIC\_MEMBER\_FUNCTION
+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 is easy.
Modified: sandbox/tti/libs/tti/doc/tti_using_mm.qbk
==============================================================================
--- sandbox/tti/libs/tti/doc/tti_using_mm.qbk (original)
+++ sandbox/tti/libs/tti/doc/tti_using_mm.qbk 2011-03-08 09:12:30 EST (Tue, 08 Mar 2011)
@@ -139,18 +139,7 @@
T
>
-[heading Member data with composite type]
-
-Does T have a member data called 'IntBT' whose type is 'AType::BType' ?
-
- BOOST_TTI_HAS_MEMBER(IntBT)
-
- boost::tti::has_member_IntBT
- <
- AType::BType T::*
- >
-
-[heading Member data with individual types]
+[heading Member data]
Does T have a member data called 'IntBT' whose type is 'AType::BType' ?
@@ -192,9 +181,9 @@
Does T have a static member data called 'DSMember' whose type is 'short' ?
- BOOST_TTI_HAS_STATIC_MEMBER(DSMember)
+ BOOST_TTI_HAS_STATIC_MEMBER_DATA(DSMember)
- boost::tti::has_static_member_DSMember
+ boost::tti::has_static_member_data_DSMember
<
T,
short
@@ -218,9 +207,9 @@
Does T have a static member function called 'SIntFunction' whose type
is 'int (long,double)' ?
- BOOST_TTI_HAS_STATIC_MEMBER(SIntFunction)
+ BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION(SIntFunction)
- boost::tti::has_static_member_SIntFunction
+ boost::tti::has_static_member_function_SIntFunction
<
T,
int,
Modified: sandbox/tti/libs/tti/doc/tti_using_ntm.qbk
==============================================================================
--- sandbox/tti/libs/tti/doc/tti_using_ntm.qbk (original)
+++ sandbox/tti/libs/tti/doc/tti_using_ntm.qbk 2011-03-08 09:12:30 EST (Tue, 08 Mar 2011)
@@ -241,11 +241,11 @@
Does T have a static member data called 'DSMember'
within 'BType::CType::DType' whose type is 'short' ?
- BOOST_TTI_MTFC_HAS_STATIC_MEMBER(DSMember)
+ BOOST_TTI_MTFC_HAS_STATIC_MEMBER_DATA(DSMember)
boost::tti::mf_has_static_data
<
- boost::tti::mtfc_has_static_member_DSMember,
+ boost::tti::mtfc_has_static_member_data_DSMember,
DTypeNM,
boost::mpl::identity<short>
>
Modified: sandbox/tti/libs/tti/test/test_has_member.hpp
==============================================================================
--- sandbox/tti/libs/tti/test/test_has_member.hpp (original)
+++ sandbox/tti/libs/tti/test/test_has_member.hpp 2011-03-08 09:12:30 EST (Tue, 08 Mar 2011)
@@ -2,7 +2,7 @@
#define TEST_HAS_MEMBER_HPP
#include "test_structs.hpp"
-#include <boost/tti/member.hpp>
+#include <boost/tti/comp_mem_fun.hpp>
BOOST_TTI_HAS_MEMBER(AnInt)
BOOST_TTI_HAS_MEMBER(VoidFunction)
Modified: sandbox/tti/libs/tti/test/test_has_static_member.hpp
==============================================================================
--- sandbox/tti/libs/tti/test/test_has_static_member.hpp (original)
+++ sandbox/tti/libs/tti/test/test_has_static_member.hpp 2011-03-08 09:12:30 EST (Tue, 08 Mar 2011)
@@ -2,7 +2,7 @@
#define TEST_HAS_STATIC_MEMBER_HPP
#include "test_structs.hpp"
-#include <boost/tti/static_member.hpp>
+#include <boost/tti/comp_static_mem_fun.hpp>
BOOST_TTI_TRAIT_HAS_STATIC_MEMBER(HaveTheSIntFunction,SIntFunction)
BOOST_TTI_TRAIT_HAS_STATIC_MEMBER(TheTIntFunction,TIntFunction)
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