|
Boost Testing : |
From: Toon Knapen (toon.knapen_at_[hidden])
Date: 2005-06-06 08:43:53
John Maddock <john_at_[hidden]> wrote:
>
>Got the message without the attechment :-(
did you get it in the mean time from my colleague?
>You're the one with the compiler: if you can let me have a patch that works
>
>that would be great!
Well writing the patch it gets even weirder (at end of mail ; not in an
attach though because I have some trouble with attachments apparantly).
I first tried to patch it by verifying that
BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED was NOT defined and only in that case
to forward-declare is_convertible. However this does not work (because it
apparantly is defined) so I left it out. Nevertheless I find this very
strange and do not understand at all what is happening.
Moreover, at the begin of this thread I said that a small test that mimics
the implementation of is_enum_impl works correctly. Well if I, in this small
test-program, include is_enum.hpp (which includes is_convertible.hpp)
instead of is_convertible.hpp, the test does not work anymore due to similar
problems.
Index: is_enum.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/type_traits/is_enum.hpp,v
retrieving revision 1.13
diff -u -r1.13 is_enum.hpp
--- is_enum.hpp 30 Jan 2005 15:41:12 -0000 1.13
+++ is_enum.hpp 6 Jun 2005 13:40:12 -0000
@@ -31,6 +31,14 @@
namespace boost {
+#if BOOST_WORKAROUND(__IBMCPP__,<=600)
+ // Although is_convertible.hpp is included above, the vacpp
+ // preprocessor apparantly skips it. Therefore we forward-declare
+ // the struct here and assume (and experienced) that it will
+ // be included succesfully later on
+ template < typename From, typename To > struct is_convertible ;
+#endif // BOOST_WORKAROUND(__IBMCPP__,<=600)
+
#if !(defined(__BORLANDC__) && (__BORLANDC__ <= 0x551))
namespace detail {