Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我可以使用模板在QString和std::string之间进行自动转换吗?_C++_Templates_Type Conversion_Implicit Conversion - Fatal编程技术网

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);