boost::implicit_cast - no documentation, misleading header comment

In a moment of outstanding boredom, I ran the regression tests for the latest gcc 4.0.1 snapshot under Linux. Looking through the fails in the HTML report I noticed that boost::implicit_cast was shown as failing test implicit_cast_fail. The output of the test is: ../libs/conversion/test/implicit_cast_fail.cpp: In function 'int test_main(int, char**)': ../libs/conversion/test/implicit_cast_fail.cpp:21: error: conversion from 'const char*' to non-scalar type 'foo' requested ../libs/conversion/test/implicit_cast_fail.cpp:21: warning: unused variable 'x' ../libs/conversion/test/implicit_cast_fail.cpp:22: warning: control reaches end of non-void function (failed-as-expected) ../bin/boost/libs/conversion/test/implicit_cast_fail.test/gcc/debug/implicit_cast_fail.o Given that (as far as my understanding of the test suite goes) compilation failure is the expected behaviour, why is this highlighted as a test failure in the HTML report? Anyway, off I trundle to find out what it is supposed to do. Unfortunately, there doesn't appear to be any documentation for "implicit_cast". So I look in the header file and find: // implementation originally suggested by C. Green in // http://lists.boost.org/MailArchives/boost/msg00886.php And dutifully follow the link to find an article by Peter Dimov about "Perfect Forwarding". I apologise if I'm being dumb and missing something obvious, but something looks a little screwy... phil -- change name before "@" to "phil" for email

Phil Richards <news@derived-software.ltd.uk> writes:
In a moment of outstanding boredom, I ran the regression tests for the latest gcc 4.0.1 snapshot under Linux. Looking through the fails in the HTML report I noticed that boost::implicit_cast was shown as failing test implicit_cast_fail.
The output of the test is:
../libs/conversion/test/implicit_cast_fail.cpp: In function 'int test_main(int, char**)': ../libs/conversion/test/implicit_cast_fail.cpp:21: error: conversion from 'const char*' to non-scalar type 'foo' requested ../libs/conversion/test/implicit_cast_fail.cpp:21: warning: unused variable 'x' ../libs/conversion/test/implicit_cast_fail.cpp:22: warning: control reaches end of non-void function (failed-as-expected) ../bin/boost/libs/conversion/test/implicit_cast_fail.test/gcc/debug/implicit_cast_fail.o
That looks like it's passing the test!
Given that (as far as my understanding of the test suite goes) compilation failure is the expected behaviour, why is this highlighted as a test failure in the HTML report?
Anyway, off I trundle to find out what it is supposed to do. Unfortunately, there doesn't appear to be any documentation for "implicit_cast". So I look in the header file and find:
// implementation originally suggested by C. Green in // http://lists.boost.org/MailArchives/boost/msg00886.php
And dutifully follow the link to find an article by Peter Dimov about "Perfect Forwarding".
Oh, crud, I guess the links changed.
I apologise if I'm being dumb and missing something obvious, but something looks a little screwy...
http://lists.boost.org/MailArchives/boost/msg56143.php explains part of it. The rest of the history is in the thread at http://lists.boost.org/boost/2005/03/22849.php. Follow the replies. Patches welcome, as always! -- Dave Abrahams Boost Consulting www.boost-consulting.com
participants (2)
-
David Abrahams
-
Phil Richards