有没有办法将C ++(STL)代码转换为QT(QTL)?
我有一个使用STL(string,vector,iostream,fstream)编写的代码
我想将它添加到我的Qt项目(QString,QVector,...使用时)。
我的理想方法是通过添加一些定义使其与QTL-STL兼容
在.h
文件中,如下所示
// STL to QTL
#ifdef STL_CPP
#include <string>
#include<vector>
#else // QTL
#include <QString>
#define string QString
#include <QVector>
#define vector QVector
#endif
是否有任何现有工作可以转换一些最常用的STL代码 更改源代码?
请注意,我不想将std数据类型转换为qt数据类型,我想要的是
使代码可用于Qt项目(ifndef STL_CPP
)和C ++项目(ifdef STL_CPP
)。
答案 0 :(得分:0)
使用宏替换将STL样式代码转换为QTL样式代码是危险的 并可能导致许多意外错误。
为避免这种情况,您可以在QT代码中使用STL并在与Qt框架交互时进行转换(以性能支付的价格),
将STL数据类型转换为QTL数据类型非常简单,就像 drescherjm
提到的QVector::fromStdVector(const std::vector<T> &vector)
和QString::fromStdString(const std::string &str)
一样