------- Comment #3 from reichelt at gcc dot gnu dot org 2005-11-30 21:09
-------
This is really invalid code.
Paragraph [7.3.3]/6 states:
A using-declaration for a class member shall be a member-declaration.
In your code snippet "using ::Foo::Bar::FooBar;" is a using-declaration
for "FooBar" which is a class member of the class "::Foo::Bar". But since
the using-declaration is not inside a class, it is not a member-declaration
- which violates [7.3.3]/6.
Or the other way round: Because the using-declaration for "FooBar" is not
inside a class, it cannot be a member-declaration according to [7.3.3]/6.
Therefore "::Foo::Bar" cannot be a class-name - it has to be a
namespace-name. And that's what GCC's error message says.
--
reichelt at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |reichelt at gcc dot gnu dot
| |org
Status|UNCONFIRMED |RESOLVED
GCC build triplet|mingw-special |
GCC host triplet|mingw-special |
GCC target triplet|mingw-special |
Resolution| |INVALID
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25006