我有以下编译代码片段
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
for (QStringList::Iterator it = commandList.begin(); it != commandList.end(); ++it) {
out << "Command: " << *it << endl;
}
但总是给我这个警告:
test.cpp:87:警告:'QTextStream&amp;的地址endl(QTextStream&amp;)'将始终评估为'true'[-Waddress]
这是什么意思,我该如何解决?由于换行字符正在打印,我认为这不是命名空间问题...
答案 0 :(得分:4)
当您使用二进制数据流时,开始插入新行不是一个好习惯。这是简单的QTextStream的主要观点之一。
此代码适用于我而没有gcc version 4.8.1 20130725 (prerelease) (GCC)
#include <QByteArray>
#include <QDataStream>
#include <QIODevice>
#include <QStringList>
int main()
{
QStringList commandList = QStringList() << "foo" << "bar" << "baz";
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
for (QStringList::Iterator it = commandList.begin(); it != commandList.end(); ++it)
out << "Command: " << *it;
}
g++ -std=c++11 -Wpedantic -Wall -I/usr/include/qt -I/usr/include/qt/QtCore -lQt5Core -fPIC main.cpp