我想写一个通用的模板方法来计算一些东西,最后返回一个值typename T.该值来自QString,因此我需要将QString转换为指定的值typename T.不幸的是我只找到了toDouble(),toInt()......的方法.
我需要的是:
QString s = 3.1415;
double d = s.toType<double>();
float f = s.toType<float>();
int i = s.toType<int>();
Run Code Online (Sandbox Code Playgroud)
我不想叫toDouble(),toInt()......因为我不能在编译时选择它们.
谢谢!
编辑:我可以编写我自己的专用模板函数来完成这个.所以
double myOwnConvertFunction<double>(const QString& s)
Run Code Online (Sandbox Code Playgroud)
然后只需调用s.toDouble()
我认为Qt可能已经有了内置方式吗?
您可以将QString转换为QVariant anf然后使用value()
QVariant(s).value<T>()
Run Code Online (Sandbox Code Playgroud)
QVariant与QString共享数据,因此这里不会发生深层复制,结果也应该非常快.为了更加舒适,Qt有
qvariant_cast<T>(s)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1112 次 |
| 最近记录: |