如何使一个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提到的
有没有办法将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提到的