qualified names in namespace member declarations

There is some previous discussion of this; but, I could not
find definitive and unanimous agreement and interpretation
of the standard.

namespace A {

      class A::SomeClass { } ;

      A::SomeClass A::some_func() ;

namespace A {

      A::SomeClass A::some_func() { return A::SomeClass() ; }

Which of the redundant A:: qualifications above are legal?
Is section 8.3 of the standard relevant? What other sections
bear on this question?

On our system, g++ and the Sun compiler allow the above while
the Intel compiler gives the "qualified name not allowed in
namespace member declaration" error discussed here a few
years back.

Finally, is it legal to define some_func without wrapping in
namespace A { } as one does for class member functions?

A::SomeClass A::some_func() { return A::SomeClass() ; }

Thanks in advance!

-- Keith -- Fraud 6

      [ See http://www.gotw.ca/resources/clcm.htm for info about ]
      [ comp.lang.c++.moderated.    First time posters: Do this! ]

duggar (292)
9/19/2006 5:00:44 PM
comp.lang.c++.moderated 10738 articles. 1 followers. allnor (8510) is leader. Post Follow

0 Replies

Similar Articles

[PageSpeed] 27