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