Bob Friesenhahn wrote:
On Tue, 19 Jul 2005, Kevin Wheatley wrote:

Florian Kainz wrote:


Thank you for pointing this out.  I think this is a bug in
gcc 4.0.1; you should probably report it to the gcc maintainers.


I don't think it is a bug, at least according to the C++ standard. If
no Image is in scope at the point of the friend declaration, it is
going to inject the Image class into the ImageChannel scope. This is
different to the pre-standard ARM, where it would have injected it
into the innermost non class scope (from memory my ARM is at home :-)


I must agree that GCC 4.0.1 is doing the right thing here and the code has a bug.

The error/warning capabilities of GCC 4.X are a clear improvement over its predecessors.


The proposed fix for exrmaketiled is harmless one way or the
other, and changing the code won't create a problem.  However,
I still maintain that there is a bug in gcc 4.0.1 that should
be reported.

Section 11.4, clause 2 (page 180) of ISO/IEC 14882 contains
two code examples.  Here's one of them:

    class X {
        enum { a = 100; }
        friend class Y;
    };

    class Y {
        int v[X::a];            // OK, Y is a friend of X
    };

    ...

Note that there is no forward declaration of Y before X.
Does gcc 4.0.1 give an error message for the example above?

Florian




_______________________________________________
Openexr-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/openexr-devel

Reply via email to