Hi,

In working on the Windows port, I've come across a few places where
there's C++ using-directives such as:

using namespace qpid::framing;

...

int MyClass::Method (framing::Buffer &b)
...

g++ is ok with this construct, but Microsoft Visual C++ complains that
framing is unknown. Essentially, what VC wants is either:

using qpid::framing;

Or

using namespace qpid;

With code as is today, apparantly VC is trying to find "framing"
within "qpid::framing", but not use "qpid::framing" itself.

I don't know C++ language and verse well enough to say what's right
with any authority, but I believe MSVC is right here (and I think the
Solaris compiler did the same thing). So far this sort of thing has
been fixed by prepending qpid:: to the method signature (in the
example above).

I'd like to come to a concensus on what to do in this type of case,
and would propose that we use a using-directive for one namespace
higher than where the "most" different namespaces are used. For
example, if code often refers to qpid::framing and qpid::broker and
qpid::sys, then a single 

using namespace qpid;

Would allow code to refer to framing::name, broker::name, and
sys::name, which is what I think the original intent was.

How does this sound? I can put a jira for this as well, if it merits
further discussion, but I don't want to get into a code format war.

Thanks,
-Steve


Reply via email to