Laurent Bonnaud <[EMAIL PROTECTED]> writes: > Hi, > > you write that "apparently", g++ 3.0 tries a longer conversion chain > than 2.95. Indeed, the compiler message let us think so. But to > verify this, I added traces into your testcase. The result is that > both g++ versions use the same conversion chain (and indeed g++ 3.0 > takes much longer to compile) : > > $ ./a.out > non const aios->aiosout > > So the only problem here seems to be the compilation speed. Perhaps > g++ 3.0 has to take into account more copy constructors for the > conversion chain computation than g++ 2.95 in order to comply with more > complex new C++ rules ?
The compile time is not a problem here, but failure building is. You move aiosout (const aiosout &o) ... under public:, which effectively hides the problem. Please take look at: http://www.mit.edu:8008/snafu.fooworld.org/sfs/116 and related thread in the sfs mailing list arhive for more proper explanation. -j