Update of /cvsroot/boost/boost/libs/fusion/test/functional
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv8169/functional

Modified Files:
        make_unfused_generic.cpp make_unfused_lvalue_args.cpp 
        make_unfused_rvalue_args.cpp unfused_generic.cpp 
        unfused_lvalue_args.cpp unfused_rvalue_args.cpp 
        unfused_typed.cpp 
Log Message:
completes boost::result_of-based result type computation


Index: make_unfused_generic.cpp
===================================================================
RCS file: 
/cvsroot/boost/boost/libs/fusion/test/functional/make_unfused_generic.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- make_unfused_generic.cpp    11 Jun 2007 06:59:05 -0000      1.2
+++ make_unfused_generic.cpp    12 Jul 2007 09:08:46 -0000      1.3
@@ -38,11 +38,11 @@
 struct test_func
     : Base
 {
-    template<typename Params>
+    template <typename Sig>
     struct result;
 
-    template <typename B, typename RM, class Seq> 
-    struct result<test_func<B, RM>(Seq)>
+    template <class Self, class Seq> 
+    struct result< Self(Seq) >
         : mpl::if_< mpl::and_< fusion::result_of::empty<Seq>, RemoveNullary >, 
                     boost::blank, mpl::identity<long> >::type
     { };

Index: make_unfused_lvalue_args.cpp
===================================================================
RCS file: 
/cvsroot/boost/boost/libs/fusion/test/functional/make_unfused_lvalue_args.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- make_unfused_lvalue_args.cpp        11 Jun 2007 06:59:05 -0000      1.2
+++ make_unfused_lvalue_args.cpp        12 Jul 2007 09:08:46 -0000      1.3
@@ -37,11 +37,11 @@
 struct test_func
     : Base
 {
-    template<typename Params>
+    template <typename Sig>
     struct result;
 
-    template <typename B, typename RN, class Seq> 
-    struct result<test_func<B, RN>(Seq)>
+    template <class Self, class Seq> 
+    struct result< Self(Seq) >
         : mpl::if_< mpl::and_< fusion::result_of::empty<Seq>, RemoveNullary >, 
                     boost::blank, mpl::identity<long> >::type
     { };

Index: make_unfused_rvalue_args.cpp
===================================================================
RCS file: 
/cvsroot/boost/boost/libs/fusion/test/functional/make_unfused_rvalue_args.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- make_unfused_rvalue_args.cpp        11 Jun 2007 06:59:05 -0000      1.2
+++ make_unfused_rvalue_args.cpp        12 Jul 2007 09:08:46 -0000      1.3
@@ -35,11 +35,11 @@
 struct test_func
     : Base
 {
-    template<typename Params>
+    template <typename Sig>
     struct result;
 
-    template <typename B, typename RN, class Seq> 
-    struct result<test_func<B, RN>(Seq)>
+    template <class Self, class Seq> 
+    struct result< Self(Seq) >
         : mpl::if_< mpl::and_< fusion::result_of::empty<Seq>, RemoveNullary >, 
                     boost::blank, mpl::identity<long> >::type
     { };

Index: unfused_generic.cpp
===================================================================
RCS file: /cvsroot/boost/boost/libs/fusion/test/functional/unfused_generic.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- unfused_generic.cpp 11 Jun 2007 06:59:05 -0000      1.2
+++ unfused_generic.cpp 12 Jul 2007 09:08:46 -0000      1.3
@@ -35,14 +35,14 @@
 struct test_func
     : Base
 {
-    template<typename T>
+    template <typename Sig>
     struct result;
 
-    template <typename B, typename RN, class Seq> 
-    struct result<test_func<B,RN>(Seq)>
+    template <class Self, class Seq>
+    struct result< Self(Seq) >
         : mpl::if_< mpl::and_< fusion::result_of::empty<Seq>, RemoveNullary >, 
                     boost::blank, mpl::identity<long> >::type
-    {};
+    { };
 
     template <typename Seq>
     long operator()(Seq const & seq) const
@@ -51,7 +51,7 @@
         return fusion::fold(seq, state, fold_op());
     }
 
-    template < typename Seq >
+    template <typename Seq>
     long operator()(Seq const & seq) 
     {
         long state = 100;
@@ -89,7 +89,7 @@
 
     BOOST_TEST(( has_type< test_func_0::result<test_func_0()> >::value ));
     BOOST_TEST(( has_type< test_func_1::result<test_func_1(int)> >::value ));
-    BOOST_TEST(( ! has_type< test_func_1::result<test_func_1()> >::value ));
+    BOOST_TEST(( ! has_type< test_func_1::result<test_func_1() > >::value ));
     BOOST_TEST(( is_same< boost::result_of< test_func_0() >::type, long 
>::value ));
     BOOST_TEST(( is_same< boost::result_of< test_func_1(int) >::type, long 
>::value ));
 }
@@ -112,8 +112,12 @@
     BOOST_TEST(unfused_func_c_ref() == 0);
 
     long lvalue = 12;
+    // also test const lvalues to pick up compiler deficiencies in that area
+    int const clvalue_1 = 1;
+    long const clvalue_2 = 2; 
+
     static const long expected = 1*sizeof(int) + 2*sizeof(long) + 
7*sizeof(char);
-    BOOST_TEST(unfused_func(lvalue,lvalue,1,2l,'\007') == 100 + expected); 
+    BOOST_TEST(unfused_func(lvalue,lvalue,clvalue_1,clvalue_2,'\007') == 100 + 
expected); 
     BOOST_TEST(lvalue == 12 + 2*sizeof(long));
     BOOST_TEST(unfused_func_ref(lvalue,lvalue,1,2l,'\007') == 100 + expected); 
     BOOST_TEST(lvalue == 12 + 4*sizeof(long));

Index: unfused_lvalue_args.cpp
===================================================================
RCS file: 
/cvsroot/boost/boost/libs/fusion/test/functional/unfused_lvalue_args.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- unfused_lvalue_args.cpp     11 Jun 2007 06:59:05 -0000      1.2
+++ unfused_lvalue_args.cpp     12 Jul 2007 09:08:46 -0000      1.3
@@ -32,11 +32,11 @@
 struct test_func
     : Base
 {
-    template<typename T>
+    template <typename Sig>
     struct result;
 
-    template <typename B, typename RM, class Seq> 
-    struct result<test_func<B, RM>(Seq)>
+    template <class Self, class Seq> 
+    struct result< Self(Seq) >
         : mpl::if_< mpl::and_< fusion::result_of::empty<Seq>, RemoveNullary >, 
                     boost::blank, mpl::identity<long> >::type
     { };
@@ -48,7 +48,7 @@
         return fusion::fold(seq, state, fold_op());
     }
 
-    template < typename Seq >
+    template <typename Seq>
     long operator()(Seq const & seq) 
     {
         long state = 100;

Index: unfused_rvalue_args.cpp
===================================================================
RCS file: 
/cvsroot/boost/boost/libs/fusion/test/functional/unfused_rvalue_args.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- unfused_rvalue_args.cpp     11 Jun 2007 06:59:05 -0000      1.2
+++ unfused_rvalue_args.cpp     12 Jul 2007 09:08:46 -0000      1.3
@@ -32,11 +32,11 @@
 struct test_func
     : Base
 {
-    template<typename T>
+    template <typename Sig>
     struct result;
 
-    template <typename B, typename RN, class Seq> 
-    struct result<test_func<B, RN>(Seq)>
+    template <class Self, class Seq> 
+    struct result< Self(Seq) >
         : mpl::if_< mpl::and_< fusion::result_of::empty<Seq>, RemoveNullary >, 
                     boost::blank, mpl::identity<long> >::type
     { };

Index: unfused_typed.cpp
===================================================================
RCS file: /cvsroot/boost/boost/libs/fusion/test/functional/unfused_typed.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- unfused_typed.cpp   11 Jun 2007 06:59:05 -0000      1.4
+++ unfused_typed.cpp   12 Jul 2007 09:08:46 -0000      1.5
@@ -45,8 +45,8 @@
     template<typename T>
     struct result;
 
-    template <typename B, typename V, class Seq> 
-    struct result<test_func<B,V>(Seq)>
+    template <class Self, class Seq> 
+    struct result<Self(Seq)>
         : mpl::if_< typename mpl::apply<Validation, Seq>::type,
             mpl::identity<long>, boost::blank >::type
     { };


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs

Reply via email to