Есть проект, в котором для соединения разных библиотек во многих местах нужно провести преобразования std::wstring в QString и обратно.
Писать везде явное преобразование QString::fromStdWString и toStdWString утомительно и замусоривает код.
Попробовал тупо написать такое
QString operator=(const std::wstring &str)
{
return QString::fromStdWString(str);
}
std::wstring operator=(const QString &str)
{
return str.toStdWString();
}
но компилятор естественно ругается на то что оператор должен быть нестатическим.
Вопрос — а возможно ли такое сделать в принципе?
Здравствуйте, x-code, Вы писали:
XC>Есть проект, в котором для соединения разных библиотек во многих местах нужно провести преобразования std::wstring в QString и обратно.
XC>Вопрос — а возможно ли такое сделать в принципе?
В принципе можно воспользоваться оператором <<
void operator<<(QString& string qstr, const std::wstring& str)
{
qstr = QString::fromStdWString(str);
}
но нужно ли...
PS Бесстрашные парни правят исходники Qt
XC>Вопрос — а возможно ли такое сделать в принципе?
Если сможешь -- расскажи как
У меня в одном проекте на Qt, где было много COM, для такого сам собой получился operator~. Тот же <<, но удобнее для аргументов функций.