On Mon, Apr 04, 2005 at 01:08:37PM +0200, tbp wrote:

> On Apr 4, 2005 1:04 PM, Jonathan Wakely <[EMAIL PROTECTED]> wrote:
> > Hope that helps,
> Yes, thanks and for once gcc warning was explicit enough (with a hint
> about namespace) for me to fix it.

:-)
It might be even better if the error indicated that only the definition
needs to be in the same namespace. 

What I mean is that GCC rejects the following code saying:

test.cc:7: error: specialization of `template<int i> void dummy::foo::f()' in 
different namespace
test.cc:3: error:   from definition of `template<int i> void dummy::foo::f()'

but actually the specialisation and definition are both in the global
namespace:

    namespace dummy {
            struct foo {
                    template <int i> void f();
            };
    }
    template <int i> void dummy::foo::f() {}
    template<> void dummy::foo::f<666>() {}

The error is that the specialisation is in a different namespace from
the declaration, not the definitionn.

Does anyone agree? Should I file a PR?

jon

-- 
"Reality is that which, when you stop believing in it, doesn't go away."
        - Phillip K. Dick

Reply via email to