
The test results for the serialization library show a problem with VC 8.0 which for the life of me I can't understand. http://www.meta-comm.com/engineering/boost-regression/developer/output/Rudbe kAssociates-bin-boost-libs-serialization-test-test_array_binary_archive-test -vc8-0-debug.html The corresponding code is below. If someone has any insight here I would love to here it. FWIW - no other compiler complains. - and I can't see anything wrong with it. If it's a bug - how do I work around it? Thanks in advance. Robert Ramey namespace boost { namespace archive { namespace detail { template<class Archive, class T> class iserializer; template<class Archive, class T> class oserializer; } // namespace detail } // namespace archive namespace serialization { // forward declarations namespace detail { template<class Archive, class T> struct member_saver; template<class Archive, class T> struct member_loader; } // namespace detail // use an "accessor class so that we can use: // "friend class boost::serialization::access;" // in any serialized class to permit clean, safe access to private class members // by the serialization system class access { public: // grant access to "real" serialization defaults #ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS public: #else template<class Archive, class T> friend struct detail::member_saver; template<class Archive, class T> friend struct detail::member_loader; template<class Archive, class T> friend class boost::archive::detail::iserializer; template<class Archive, class T> friend class boost::archive::detail::oserializer; template<class Archive, class T> friend inline void serialize( Archive & ar, T & t, const BOOST_PFTO unsigned int file_version ); template<class Archive, class T> friend inline void save_construct_data( Archive & ar, const T * t, const BOOST_PFTO unsigned int file_version ); template<class Archive, class T> friend inline void load_construct_data( Archive & ar, T * t, const BOOST_PFTO unsigned int file_version ); #endif

"Robert Ramey" <ramey@rrsd.com> writes:
The test results for the serialization library show a problem with VC 8.0 which for the life of me I can't understand.
http://www.meta-comm.com/engineering/boost-regression/developer/output/Rudbe kAssociates-bin-boost-libs-serialization-test-test_array_binary_archive-test -vc8-0-debug.html
Wow, great candidate for TinyURL.
The corresponding code is below. If someone has any insight here I would love to here it. FWIW - no other compiler complains. - and I can't see anything wrong with it. If it's a bug - how do I work around it?
All I can imagine is that friend template support is not completely implemented in this compiler. It seems like a parsing bug, though. Can you reduce it to a small testcase? Did you report it? -- Dave Abrahams Boost Consulting http://www.boost-consulting.com

I was reviewing the logs of the tests that get run here and for some reason cvs was failing to update some files in boost/archive. I manually intervened and forced the update. Regression test should start running again shortly, Let's take a look at the next results before we panic. At Monday 2004-08-09 20:41, you wrote:
The test results for the serialization library show a problem with VC 8.0 which for the life of me I can't understand.
http://www.meta-comm.com/engineering/boost-regression/developer/output/Rudbe kAssociates-bin-boost-libs-serialization-test-test_array_binary_archive-test -vc8-0-debug.html
The corresponding code is below. If someone has any insight here I would love to here it. FWIW - no other compiler complains. - and I can't see anything wrong with it. If it's a bug - how do I work around it?
Thanks in advance.
Robert Ramey
namespace boost {
namespace archive { namespace detail { template<class Archive, class T> class iserializer; template<class Archive, class T> class oserializer; } // namespace detail } // namespace archive
namespace serialization {
// forward declarations namespace detail { template<class Archive, class T> struct member_saver; template<class Archive, class T> struct member_loader; } // namespace detail
// use an "accessor class so that we can use: // "friend class boost::serialization::access;" // in any serialized class to permit clean, safe access to private class members // by the serialization system
class access { public: // grant access to "real" serialization defaults #ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS public: #else template<class Archive, class T> friend struct detail::member_saver; template<class Archive, class T> friend struct detail::member_loader; template<class Archive, class T> friend class boost::archive::detail::iserializer; template<class Archive, class T> friend class boost::archive::detail::oserializer; template<class Archive, class T> friend inline void serialize( Archive & ar, T & t, const BOOST_PFTO unsigned int file_version ); template<class Archive, class T> friend inline void save_construct_data( Archive & ar, const T * t, const BOOST_PFTO unsigned int file_version ); template<class Archive, class T> friend inline void load_construct_data( Archive & ar, T * t, const BOOST_PFTO unsigned int file_version ); #endif
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Victor A. Wagner Jr. http://rudbek.com The five most dangerous words in the English language: "There oughta be a law"

Robert Ramey wrote:
The test results for the serialization library show a problem with VC 8.0 which for the life of me I can't understand.
A slightly aside question: What version of VC8 is being used for these tests? I have reason to believe that it's the beta-1 release, in which case it's actually about 2 months older than the latest available release. The VC++ team have stated that they're very close to working out the details of releasing newer compiler drops before beta 2, which is still some months away. Bottom line - it's entirely possible that the problem you're seeing is a bug that's already been fixed. (One such bug was found by the Spirit folks already). -cd

Stefan Slapeta wrote:
Carl Daniel wrote:
I have reason to believe that it's the beta-1 release, in which case it's actually about 2 months older than the latest available release.
Where did you see such a release? At least it's not in MSDN.
No, it's not. But hopefully it will be soon (there, or somewhere at least as accessible). The latest releases are only avilable to people who were part of the Whidbey Alpha program. The VC++ team is working on making them available to wider audience. -cd

you know, you could simply ask my email is on this message AND, if you follow the link on the test page, I give it there. I apologize for not thinking to also include the versions, but that's fixed now. btw, the version is: Microsoft Visual Studio 2005 Beta1 Version 8.0.40607.16 (beta1.040607-1600) At Tuesday 2004-08-10 07:54, you wrote:
Stefan Slapeta wrote:
Carl Daniel wrote:
I have reason to believe that it's the beta-1 release, in which case it's actually about 2 months older than the latest available release.
Where did you see such a release? At least it's not in MSDN.
No, it's not. But hopefully it will be soon (there, or somewhere at least as accessible).
The latest releases are only avilable to people who were part of the Whidbey Alpha program. The VC++ team is working on making them available to wider audience.
if you know someone on the Whidbey team tell them I'd be happy to update my copy so the public results better show their product.
-cd
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
Victor A. Wagner Jr. http://rudbek.com The five most dangerous words in the English language: "There oughta be a law"

Victor A. Wagner Jr. wrote:
you know, you could simply ask
I didn't know to ask you, since you weren't the original poster.
if you know someone on the Whidbey team tell them I'd be happy to update my copy so the public results better show their product.
They already feel your pain. As I said, they're actively working on the (procedural, legal, etc) issues involved in getting more recent builds of the compiler into the hands of the public beta users rather than forcing everyone to wait for Beta 2. I'm sure that when the details are worked out, it'll be posted on the Visual C++ Developer Center on MSDN. -cd

Robert Ramey <ramey <at> rrsd.com> writes:
The test results for the serialization library show a problem with VC 8.0 which for the life of me I can't understand.
http://www.meta-comm.com/engineering/boost-regression/developer/output/Rudbe kAssociates-bin-boost-libs-serialization-test-test_array_binary_archive-test -vc8-0-debug.html
The corresponding code is below. If someone has any insight here I would love to here it. FWIW - no other compiler complains. - and I can't see anything wrong with it. If it's a bug - how do I work around it?
Hi Robert, The problem seems to be related with the one I ran into with my lib, as described in http://lists.boost.org/MailArchives/boost/msg68369.php Looks like VC 8.0 does not handle member *qualified* template friends. The solution I applied is to simply extend the defect macro BOOST_NO_MEMBER_TEMPLATE_FRIENDS to VC 8.0 (by using a local version of the macro, namely BOOST_MULTI_INDEX_NO_MEMBER_TEMPLATE_FRIENDS), until this issue is officially resolved in Boost.Config. Looking at your code, I'd say you can do exactly the same to get rid of the problem. HTH Joaquín M López Muñoz Telefónica, Investigación y Desarrollo
participants (6)
-
Carl Daniel
-
David Abrahams
-
Joaquin M Lopez Munoz
-
Robert Ramey
-
Stefan Slapeta
-
Victor A. Wagner Jr.