我可以使用模板在QString和std :: string之间进行自动转换吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我可以使用模板在QString和std :: string之间进行自动转换吗?相关的知识,希望对你有一定的参考价值。
我想知道是否有可能在QString
和std::string
之间创建一个自动转换,所以我可以写这样的东西:
QString a, b;
std::string c, d;
a = c;
d = b;
和a = c;
和d = b;
按预期工作。
我认为这对模板是可行的,但它看起来像我发现的所有示例只适用于二元运算符。
仅供参考,我已经有了实施的代码。我真正感兴趣的是让赋值(=
)运算符起作用。因为写下面的内容很烦人,许多人倾向于忘记并跳过使用正确的转换:
a = QString::fromUt8(c.toUtf8());
d = b.toUtf8().data();
答案
赋值运算符必须实现为成员函数(参见例如here)
QString a, b;
std::string c, d;
a = c;
d = b;
不行。相反,你可能想要考虑一个自由函数,就像这样的东西
assignStrings(a,c); // or perhaps... a = toQString(c);
以上是关于我可以使用模板在QString和std :: string之间进行自动转换吗?的主要内容,如果未能解决你的问题,请参考以下文章
QString和std::string转换乱码与sqlite存储汉字乱码
QString和std::string转换乱码与sqlite存储汉字乱码
QString与中文,QString与std::wstring的相互转换(使用fromStdWString和u8关键字)
QString与中文,QString与std::wstring的相互转换(使用fromStdWString和u8关键字)(转)