Вызов функции неоднозначен
Я пытаюсь построить программу, но получил ошибку:
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
сказать, будет ли работать вышеуказанный метод при работе с нелатинскими символами. В этом ответе представлены лучшие альтернативы, но чтобы выбирать между ними, мы должны знать, с какими данными мы имеем дело.