Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r83514 - in trunk: boost/tti boost/tti/mf libs/tti/test
From: eldiener_at_[hidden]
Date: 2013-03-22 01:34:20


Author: eldiener
Date: 2013-03-22 01:34:17 EDT (Fri, 22 Mar 2013)
New Revision: 83514
URL: http://svn.boost.org/trac/boost/changeset/83514

Log:
Updated member type implementation to support user-defined marker type.
Removed:
   trunk/boost/tti/mf/
Text files modified:
   trunk/boost/tti/member_type.hpp | 16 ++++------------
   trunk/libs/tti/test/test_mem_type.cpp | 17 ++++++++---------
   trunk/libs/tti/test/test_mem_type_compile.cpp | 17 ++++++++---------
   trunk/libs/tti/test/test_structs.hpp | 4 ++++
   4 files changed, 24 insertions(+), 30 deletions(-)

Modified: trunk/boost/tti/member_type.hpp
==============================================================================
--- trunk/boost/tti/member_type.hpp (original)
+++ trunk/boost/tti/member_type.hpp 2013-03-22 01:34:17 EDT (Fri, 22 Mar 2013)
@@ -58,13 +58,13 @@
 #define BOOST_TTI_TRAIT_MEMBER_TYPE(trait,name) \
     BOOST_TTI_DETAIL_TRAIT_HAS_TYPE_MEMBER_TYPE(trait,name) \
     BOOST_TTI_DETAIL_TRAIT_MEMBER_TYPE(trait,name) \
- template<class TTI_T> \
+ template<class TTI_T,class TTI_MARKER_TYPE = BOOST_TTI_NAMESPACE::detail::notype> \
     struct trait : \
       boost::mpl::eval_if \
         < \
         BOOST_PP_CAT(trait,_detail)<TTI_T>, \
         BOOST_PP_CAT(trait,_detail_member_type)<TTI_T>, \
- boost::mpl::identity<BOOST_TTI_NAMESPACE::detail::notype> \
+ boost::mpl::identity<TTI_MARKER_TYPE> \
> \
       { \
       }; \
@@ -126,22 +126,14 @@
           returns = 'value' is true if the type is valid, otherwise 'value' is false.
                           
     */
- template
- <
- class TTI_T
- >
+ template<class TTI_T,class TTI_MARKER_TYPE = BOOST_TTI_NAMESPACE::detail::notype>
     struct valid_member_type :
       boost::mpl::not_
         <
- boost::is_same
- <
- TTI_T,
- BOOST_TTI_NAMESPACE::detail::notype
- >
+ boost::is_same<TTI_T,TTI_MARKER_TYPE>
>
       {
       };
-
     }
   }
   

Modified: trunk/libs/tti/test/test_mem_type.cpp
==============================================================================
--- trunk/libs/tti/test/test_mem_type.cpp (original)
+++ trunk/libs/tti/test/test_mem_type.cpp 2013-03-22 01:34:17 EDT (Fri, 22 Mar 2013)
@@ -6,19 +6,18 @@
 
 #include "test_mem_type.hpp"
 #include <boost/detail/lightweight_test.hpp>
-#include <boost/tti/mf/mf_member_type.hpp>
 
 int main()
   {
   
- BOOST_TEST(boost::tti::mf_valid_member_type<BOOST_TTI_MEMBER_TYPE_GEN(AnIntType)<AType> >::value);
- BOOST_TEST(boost::tti::mf_valid_member_type<NameStruct<AType> >::value);
- BOOST_TEST(boost::tti::mf_valid_member_type<BOOST_TTI_MEMBER_TYPE_GEN(AnIntTypeReference)<AType> >::value);
- BOOST_TEST(boost::tti::mf_valid_member_type<BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType> >::value);
- BOOST_TEST(boost::tti::mf_valid_member_type<TheInteger<AType::BType> >::value);
- BOOST_TEST(boost::tti::mf_valid_member_type<BOOST_TTI_MEMBER_TYPE_GEN(CType)<AType::BType> >::value);
- BOOST_TEST(boost::tti::mf_valid_member_type<BOOST_TTI_MEMBER_TYPE_GEN(AnotherIntegerType)<AType::BType::CType> >::value);
- BOOST_TEST(boost::tti::mf_valid_member_type<SomethingElse<AnotherType> >::value);
+ BOOST_TEST(boost::tti::valid_member_type<BOOST_TTI_MEMBER_TYPE_GEN(AnIntType)<AType>::type>::value);
+ BOOST_TEST(boost::tti::valid_member_type<NameStruct<AType>::type>::value);
+ BOOST_TEST(boost::tti::valid_member_type<BOOST_TTI_MEMBER_TYPE_GEN(AnIntTypeReference)<AType>::type>::value);
+ BOOST_TEST(boost::tti::valid_member_type<BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>::type>::value);
+ BOOST_TEST(boost::tti::valid_member_type<TheInteger<AType::BType>::type>::value);
+ BOOST_TEST(boost::tti::valid_member_type<BOOST_TTI_MEMBER_TYPE_GEN(CType)<AType::BType>::type>::value);
+ BOOST_TEST(boost::tti::valid_member_type<BOOST_TTI_MEMBER_TYPE_GEN(AnotherIntegerType)<AType::BType::CType>::type>::value);
+ BOOST_TEST(boost::tti::valid_member_type<SomethingElse<AnotherType>::type>::value);
   
   return boost::report_errors();
 

Modified: trunk/libs/tti/test/test_mem_type_compile.cpp
==============================================================================
--- trunk/libs/tti/test/test_mem_type_compile.cpp (original)
+++ trunk/libs/tti/test/test_mem_type_compile.cpp 2013-03-22 01:34:17 EDT (Fri, 22 Mar 2013)
@@ -6,19 +6,18 @@
 
 #include "test_mem_type.hpp"
 #include <boost/mpl/assert.hpp>
-#include <boost/tti/mf/mf_member_type.hpp>
 
 int main()
   {
   
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type<BOOST_TTI_MEMBER_TYPE_GEN(AnIntType)<AType> >));
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type<NameStruct<AType> >));
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type<BOOST_TTI_MEMBER_TYPE_GEN(AnIntTypeReference)<AType> >));
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type<BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType> >));
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type<TheInteger<AType::BType> >));
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type<BOOST_TTI_MEMBER_TYPE_GEN(CType)<AType::BType> >));
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type<BOOST_TTI_MEMBER_TYPE_GEN(AnotherIntegerType)<AType::BType::CType> >));
- BOOST_MPL_ASSERT((boost::tti::mf_valid_member_type<SomethingElse<AnotherType> >));
+ BOOST_MPL_ASSERT((boost::tti::valid_member_type<BOOST_TTI_MEMBER_TYPE_GEN(AnIntType)<AType>::type>));
+ BOOST_MPL_ASSERT((boost::tti::valid_member_type<NameStruct<AType>::type>));
+ BOOST_MPL_ASSERT((boost::tti::valid_member_type<BOOST_TTI_MEMBER_TYPE_GEN(AnIntTypeReference)<AType>::type>));
+ BOOST_MPL_ASSERT((boost::tti::valid_member_type<BOOST_TTI_MEMBER_TYPE_GEN(BType)<AType>::type>));
+ BOOST_MPL_ASSERT((boost::tti::valid_member_type<TheInteger<AType::BType>::type>));
+ BOOST_MPL_ASSERT((boost::tti::valid_member_type<BOOST_TTI_MEMBER_TYPE_GEN(CType)<AType::BType>::type>));
+ BOOST_MPL_ASSERT((boost::tti::valid_member_type<BOOST_TTI_MEMBER_TYPE_GEN(AnotherIntegerType)<AType::BType::CType>::type>));
+ BOOST_MPL_ASSERT((boost::tti::valid_member_type<SomethingElse<AnotherType>::type>));
   
   return 0;
 

Modified: trunk/libs/tti/test/test_structs.hpp
==============================================================================
--- trunk/libs/tti/test/test_structs.hpp (original)
+++ trunk/libs/tti/test/test_structs.hpp 2013-03-22 01:34:17 EDT (Fri, 22 Mar 2013)
@@ -145,6 +145,10 @@
   static const int CIntValue = 10;
   
   };
+
+struct MarkerType
+ {
+ };
 
 short AType::DSMember(5622);
 AType::AStructType AnotherType::AnStat;


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