Hello,
i'm a bit puzzled by the behaviour of gcc4 (old 4.0 & recent 4.1
snapshots) regarding how template specialization should be qualified
wrt namespace:
namespace dummy {
struct foo {
template <int i> void f() {}
};
}
template<> void dummy::foo::f<666>() {}
testcase.cpp:30: error: specialization of 'template<int i> void
dummy::foo::f()' in different namespace
testcase.cpp:27: error: from definition of 'template<int i> void
dummy::foo::f()'
It has to be written this way:
namespace dummy {
template<> void dummy::foo::f<666>() {}
or
template<> void foo::f<666>() {}
}
Other compilers (gcc 3.4.x, msvc2k3, icc8.1) don't whine.
Am i missing something obvious?