Revision: 149
Author:
plazt...@gmail.com
Date: Wed Apr 10 17:23:44 2013
Log: fix compilation with clang 3.2 and 3.3.
http://code.google.com/p/mockitopp/source/detail?r=149
Modified:
/trunk/include/mockitopp/detail/util/tr1_tuple.hpp
/trunk/include/mockitopp/detail/util/tr1_tuple.hpp.m4
/trunk/test/src/bugs/issue_7.cpp
=======================================
--- /trunk/include/mockitopp/detail/util/tr1_tuple.hpp Sat Sep 29 00:40:54
2012
+++ /trunk/include/mockitopp/detail/util/tr1_tuple.hpp Wed Apr 10 17:23:44
2013
@@ -47,18 +47,6 @@
{}
};
- // 1 element template
- template <typename T0>
- struct tuple<T0 , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type>
- : tuple_cons<T0, tuple<> >
- {
- tuple(typename add_reference<typename add_const<T0
>::type>::type t0)
- : tuple_cons<T0, tuple<> >
- (t0, tuple<>
- ())
- {}
- };
-
// 2 element template
template <typename T0, typename T1>
struct tuple<T0, T1 , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type>
@@ -157,6 +145,17 @@
+ // 1 element template
+ template <typename T0>
+ struct tuple<T0 , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type>
+ : tuple_cons<T0, tuple_null_type>
+ {
+ tuple(typename add_reference<typename add_const<T0
>::type>::type t0)
+ : tuple_cons<T0, tuple_null_type>
+ (t0, tuple_null_type())
+ {}
+ };
+
// 0 element template
template <>
struct tuple< tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type ,
tuple_null_type , tuple_null_type , tuple_null_type , tuple_null_type >
=======================================
--- /trunk/include/mockitopp/detail/util/tr1_tuple.hpp.m4 Sat Sep 29
00:40:54 2012
+++ /trunk/include/mockitopp/detail/util/tr1_tuple.hpp.m4 Wed Apr 10
17:23:44 2013
@@ -67,7 +67,18 @@
};
')dnl
-M4_REPEAT_FROM_TO(1, eval(MOCKITOPP_MAX_VIRTUAL_FUNCTION_ARITY),
`TUPLE_TEMPLATE')
+M4_REPEAT_FROM_TO(2, eval(MOCKITOPP_MAX_VIRTUAL_FUNCTION_ARITY),
`TUPLE_TEMPLATE')
+
+ // 1 element template
+ template <M4_ENUM_PARAMS(1, typename T)>
+ struct tuple<M4_ENUM_PARAMS(1,
T)M4_REPEAT(eval(MOCKITOPP_MAX_VIRTUAL_FUNCTION_ARITY - 1),
`TUPLE_NULL_TYPE_TRAILING_PARAM')>
+ : tuple_cons<T0, tuple_null_type>
+ {
+ tuple(M4_ENUM_BINARY_PARAMS(1, typename add_reference<typename
add_const<T, >::type>::type t))
+ : tuple_cons<T0, tuple_null_type>
+ (t0, tuple_null_type())
+ {}
+ };
// 0 element template
define(`TUPLE_NULL_TYPE_PARAM', `tuple_null_type
M4_COMMA_IF(eval(MOCKITOPP_MAX_VIRTUAL_FUNCTION_ARITY-1-$1))')dnl
=======================================
--- /trunk/test/src/bugs/issue_7.cpp Sat Sep 29 00:40:54 2012
+++ /trunk/test/src/bugs/issue_7.cpp Wed Apr 10 17:23:44 2013
@@ -12,9 +12,9 @@
{
virtual void func(iface1&) = 0;
};
-}
-bool operator==(issue_7_ns::iface1&, issue_7_ns::iface1&) { return true; }
+ bool operator==(issue_7_ns::iface1&, issue_7_ns::iface1&) { return
true; }
+}
bool eq(issue_7_ns::iface1& lhs, issue_7_ns::iface1& rhs) { return lhs ==
rhs; }