Это ошибка, которую я получаю от make:
In file included from ui/graphical/game/control/chatcommand/chatcommand.cpp:20:
ui/graphical/game/control/chatcommand/chatcommand.h:67:41: error:
implicit instantiation of undefined template 'cChatCommandParser<>'
return cChatCommandParser<NewArgument>(cChatCommandParser<>(std::move(*thi...
^
ui/graphical/game/control/chatcommand/chatcommand.h:27:7: note:
template is declared here
class cChatCommandParser;
^
chatcommand.h:
...
template<typename... Arguments>
class cChatCommandParser;
...
class cChatCommand
{
public:
...
template<typename NewArgument, typename... Args>
cChatCommandParser<NewArgument> addArgument(Args&&... args);
...
};
template<typename NewArgument, typename... Args>
cChatCommandParser<NewArgument> cChatCommand::addArgument(Args&&... args)
{
return cChatCommandParser<NewArgument>(cChatCommandParser<>(std::move(*this)), NewArgument(std::forward<Args>(args)...));
}
Очевидным решением будет #include chatcommandparser.h
.К сожалению, chatcommandparser.h уже содержит chatcommand.h.
Какой самый консервативный способ распутать это?Я действительно не знаю, что делает этот код, и просто хочу скомпилировать его.
Обратите внимание, что GNU gcc компилирует это без проблем.Я пытаюсь скомпилировать это с яблоками GCC.