By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,234 Members | 1,896 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,234 IT Pros & Developers. It's quick & easy.

a problem relate to namespace and using

P: n/a
Hello, I want to know whether the following program is legal. the
g++-4.1 can not compile it

$ g++ -c bug2.cpp
bug2.cpp:8: error: expected unqualified-id before '}' token
bug2.cpp:15: error: 'A' is already declared in this scope
bug2.cpp:20: error: prototype for 'void n1::B::foo(const
n1::n2::A&)' does not match any in class 'n1::B'
bug2.cpp:6: error: candidate is: void n1::B::foo(const n1::A&)
$

// begin bug2.cpp
// #include "b.hpp"
namespace n1 {
class A;
class B {
void foo(const A&);
}
}

// #include "a.hpp"
namespace n1 {
namespace n2 {
class A {};
}
using n2::A;
}

// b.cpp
namespace n1 {
void B::foo(const A&) {
return;
}
}
// end

Jun 21 '06 #1
Share this Question
Share on Google+
1 Reply


P: n/a
Li Daobing wrote:
Hello, I want to know whether the following program is legal. the
g++-4.1 can not compile it

$ g++ -c bug2.cpp
bug2.cpp:8: error: expected unqualified-id before '}' token
bug2.cpp:15: error: 'A' is already declared in this scope
bug2.cpp:20: error: prototype for 'void n1::B::foo(const
n1::n2::A&)' does not match any in class 'n1::B'
bug2.cpp:6: error: candidate is: void n1::B::foo(const n1::A&)
$

// begin bug2.cpp
// #include "b.hpp"
namespace n1 {
class A;
declaration of n1::A.
class B {
void foo(const A&);
}
}

// #include "a.hpp"
namespace n1 {
namespace n2 {
class A {};
}
using n2::A;


using declaration of n1::A. This clashes with the n1::A declaration
above, since the two declarations refer to different classes (n1::A and
n1::n2::A).

Tom
Jun 21 '06 #2

This discussion thread is closed

Replies have been disabled for this discussion.