$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Arkadiy Vertleyb (vertleyb_at_[hidden])
Date: 2006-04-06 13:06:16
"John Maddock" <john_at_[hidden]> wrote
> > This kind of unnamed namespace can be handled correctly by both MS
> > compilers, with respect to pch, but I don't believe it satisfies the
> > Boost naming convention. OTOH, if no other solution is found, this
> > is the only
> > way we can achieve typeof compliance with pch, while still staying in
> > the unnamed namespace.
>
> I'm surprised the any kind of unnamed namespace can be handled by PCH's:
> after all each TU should get it's own distict name for the unnamed
> namespace.
I don't know much about how this is done, but I think PCH stores the state
of the compiler, so it should be possible to leave some unknowns in this
state, such as namespace name, to resolve later. But again, I am just
speculating.
In any case, if you do somehing like this in PCH:
namespace a { namespace {
template<class T> struct foo {};
}}
and then, outside PCH:
namespace a { namespace {
template<> struct foo<int> {};
}}
the compiler (7.1, 8.0) will complain.
If, OTOH, you use:
namespace { namespace a {
everything seems to compile fine.
(I don't know how other compilers handle this problem, though)
Regards,
Arkadiy