I had the same problem as the OP, and came out with the following example. I added the code below at the end of a CPP file of a project that has many H and CPP files (actally, it seems 'Move Implementation to Source File' is not available for me if I have only one file in the MSVC project -- I am using Visual Studio 2005 with build 1548 of VAssistX).
class L {
//void a();
void method(){}
};
//void L::a() {}
When trying to move the 'method' out of the class definition, I got this:
class L {
//void a();
void method();
void method() {
}
};
//void L::a() {}
When uncommenting both the declaration and the definition of the 'a' method, I got the correct result:
class L {
void a();
void method();
};
void L::a() {}
void L::method() {
}
Hope this helps...