-1

有没有办法将 C++(STL)代码转换为 QT(QTL)?

我有一个使用 STL(字符串、向量、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)中使用。

4

1 回答 1

0

Using Macro Substitution to convert STL-style code to QTL-style code is dangerous and may cause many unexpected errors.

To avoid that, you can use the STL in QT code and convert when interacting with the Qt framework (for a price paid in performance),

convert STL datatype to QTL datatype is quite simple, just like QVector::fromStdVector(const std::vector<T> &vector) and QString::fromStdString(const std::string &str) mentioned by drescherjm

于 2016-04-30T03:21:54.620 回答