我可以使用模板在 QString 和 std::string 之间进行自动转换吗?
Can I use a template to get automatic conversions between QString and 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();
赋
值运算符必须实现为成员函数(参见此处(,因此
QString a, b;
std::string c, d;
a = c;
d = b;
行不通。相反,你可能想考虑一个自由函数,
类似于assignStrings(a,c); // or perhaps... a = toQString(c);
相关文章:
- 在 Rcpp 中的字符串类型之间转换时出错
- r-在Rcpp和C++之间转换矢量(使用Rcpp::as或Rcpp:::wrap)是否会创建一个新的矢量并复制元素
- 在不同类型之间转换常量指针
- 在 3D 骨架系统 DirectX 之间转换
- C++ 如何将用户控件添加到窗体,以便我可以在面板之间转换
- 在 std::u8string 和 std::string 之间转换
- 如何在Unicode/UCS CodePoint和UTF16替代对之间转换
- 在DXGI格式之间转换RGBA数据
- 在两个不动点表达之间转换
- 在函数指针类型之间转换
- 代码的错误答案是在Java Camel案件和C 下划线标识符之间转换的错误答案
- 如何在C 中的不同类之间转换
- 一个关于C++中double和int之间转换的奇怪结果
- 模板类在模板类型之间转换,但也专门化
- 是否有Visual c++编译器在线,以及如何在c++和vs简单代码之间转换
- c/在Unix时间和"Gregorian time"之间转换
- 无法使用iconv在编码之间转换
- 在std::string和std::wstring之间转换的多平台方式
- 我真的应该每次在基元类型之间转换时都使用static_cast吗
- 使用Boost::units在两个量之间转换的最简单方法