// { dg-do assemble } // Templates can be defined outside of the namespace if the have been declared // inside namespace bar { template T const foo(T const &); template<> const int foo(int const &); } template T const bar::foo(T const &a) { return a; } template<> const int bar::foo(int const &){return 0;}