Вызов функции неоднозначен

Я пытаюсь построить программу, но получил ошибку:

application_ob.cpp: In member function 'void ApplicationWindow::OBNewLoad(QString, QString)':
application_ob.cpp:103:41: error: call of overloaded 'FormatFromExt(QString&)' is ambiguous
application_ob.cpp:103:41: note: candidates are:
/usr/include/openbabel-2.0/openbabel/obconversion.h:81:24: note: static OpenBabel::OBFormat* OpenBabel::OBConversion::FormatFromExt(const char*)
/usr/include/openbabel-2.0/openbabel/obconversion.h:84:24: note: static OpenBabel::OBFormat* OpenBabel::OBConversion::FormatFromExt(std::string)

Как я могу исправить это так, чтобы получить нормальную сборку? Пожалуйста, объясните простым способом, потому что я не знаю C++.

1 ответ

Линия 103 application_ob.cpp вероятно читает что-то вроде:

FormatFromExt(qs);

Непосредственным решением было бы изменить это (или его эквивалент) на

FormatFromExt(qs.toStdString());

Однако у нас недостаточно информации о возможном содержании qs сказать, будет ли работать вышеуказанный метод при работе с нелатинскими символами. В этом ответе представлены лучшие альтернативы, но чтобы выбирать между ними, мы должны знать, с какими данными мы имеем дело.

Другие вопросы по тегам