C++ 我可以使用模板在QString和std::string之间进行自动转换吗?
我想知道是否有可能在C++ 我可以使用模板在QString和std::string之间进行自动转换吗?,c++,templates,type-conversion,implicit-conversion,C++,Templates,Type Conversion,Implicit Conversion,我想知道是否有可能在QString和std::string之间创建一个自动转换,这样我就可以编写如下内容: QString a, b; std::string c, d; a = c; d = b; 而a=c和d=b按预期工作 我认为这在模板中是可行的,但我发现的所有示例似乎都只适用于二进制运算符 仅供参考,我已经有了实施的代码。我真正感兴趣的是让赋值(=)操作符工作。因为写以下内容很烦人,许多人往往会忘记并跳过正确的转换: a = QString::fromUt8(c.toUtf8());
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();
赋值运算符必须作为成员函数实现(参见eg),因此
不行。相反,您可能想考虑一个自由函数,类似于
assignStrings(a,c); // or perhaps... a = toQString(c);
assignStrings(a,c); // or perhaps... a = toQString(c);