如何制作c ++代码可用于Qt项目(QTL样式)和C ++项目(STL样式)

时间:2016-04-30 02:31:11

标签: qt stl qvector

有没有办法将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)。

1 个答案:

答案 0 :(得分:0)

使用宏替换将STL样式代码转换为QTL样式代码是危险的 并可能导致许多意外错误。

为避免这种情况,您可以在QT代码中使用STL并在与Qt框架交互时进行转换(以性能支付的价格),

将STL数据类型转换为QTL数据类型非常简单,就像 drescherjm

提到的QVector::fromStdVector(const std::vector<T> &vector)QString::fromStdString(const std::string &str)一样