如何使一个c++代码既可以用于Qt项目(QTL风格)又可以用于C++项目(STL风格)

How to make a c++ code can be used in both Qt project (QTL style) and C++ project (STL style)

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

使用宏替换将STL风格的代码转换为QTL风格的代码是危险的 并可能导致许多意想不到的错误。

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

将STL数据类型转换为QTL数据类型非常简单,就像QVector::fromStdVector(const std::vector<T> &vector)QString::fromStdString(const std::string &str)drescherjm提到的