You can fully define the name of the function template:
namespace foo { namespace bar { void put(); } } namespace foo { namespace { template<typename T> void put() { } } void bar::put() { ::foo::put<int>(); } }
Also note that you do not need to use a comma after defining a function.
source share