I also have this problem on a daily basis. The problem gets worse when you have something that uses several types from the same namespace. Every time I do 'create implementation' I have to do lots of manual deletion:
// file.h
namespace Company {
namespace Product {
struct ValueType {};
template <T>
class TClass {};
class MyClass
{
public:
TClass<ValueType> getValue(); // nice and short...
};
}} // end namespace
// file.cpp - create implementation
namespace Company {
namespace Product {
// woah.
Company::Product::TClass<Company::Product::ValueType> MyClass::getValue()
{
}
}}