если заменить на QString получаю segv. Кто нибудь в курсе почему так?
'''
QPair<bool, std::string>&& Dialog::checkLoginPassword(QString& login, QString& password)
{
if(login == password){
return std::move(qMakePair(true, std::move(std::string(""))));
}
else {
return std::move(qMakePair(false, std::move(std::string("Error"))));
}
}
'''
Не делайте возврат &&
а какой смысл вкладывается в это? возвращать что-либо по && можно только в случае, когда твой объект передает состояние вовне, например, в случае когда временный объект лишается своего состояния осознанно: struct holder { std::string text; std::string&& extract() && { return std::move(text); } }; int main() { // временный объект holder в методе extract передает состояние вовне std::string&& s = holder{"hello my dear friends! keep smiling and be simple!"}.extract(); }
Обсуждают сегодня