Портирую код своего приложения под MacOSX компилирующегося под VS 2005
Схематический пример кода, которого достаточно много, который GCC конечно не компилит:
//это некторая иэрархия команд
struct Command {};
struct MyCmd : public Command {};
//А это класс который содержит процедуру для обработки команды:
class CommandProcessor {
public:
void process( Command& in ) {}
};
//Где то есть указатель на его экземпляр.
CommandProcessor* pCmdProcessor;
// за макросами для вызова команды раскрывается такой код:
pCmdProcessor->process( MyCmd() );
GCC говорит:
error: no matching function for call to 'CommandProcessor::process(MyCmd)'
note: candidates are: void CommandProcessor::process(Command&)
Как красиво решить прблему.