我正在使用QT 5.5.0。
当我编译程序时,显示“在命名空间'std'中没有名为'u16string'的类型”。有趣的是,我过去已经成功编译过它,为什么现在出错了呢?看起来这似乎与
如何解决?错误发生的地方如下:
当我编译程序时,显示“在命名空间'std'中没有名为'u16string'的类型”。有趣的是,我过去已经成功编译过它,为什么现在出错了呢?看起来这似乎与
qstring.h
有关。如何解决?错误发生的地方如下:
#ifndef QSTRING_H
#define QSTRING_H
#if defined(QT_NO_CAST_FROM_ASCII) && defined(QT_RESTRICTED_CAST_FROM_ASCII)
#error QT_NO_CAST_FROM_ASCII and QT_RESTRICTED_CAST_FROM_ASCII must not be defined at the same time
#endif
#include <QtCore/qchar.h>
#include <QtCore/qbytearray.h>
#include <QtCore/qrefcount.h>
#include <QtCore/qnamespace.h>
#include <string>
#if defined(Q_OS_ANDROID)
// std::wstring is disabled on android's glibc, as bionic lacks certain features
// that libstdc++ checks for (like mbcslen). namespace std { typedef basic_string<wchar_t> wstring; }
#endif
#if defined(Q_COMPILER_UNICODE_STRINGS) || defined(Q_QDOC)
static inline QString fromStdU16String(const std::u16string &s);
inline std::u16string toStdU16String() const;
static inline QString fromStdU32String(const std::u32string &s);
inline std::u32string toStdU32String() const;
#endif
endif
- shengfu zou<string>
?看到更多的代码会更有帮助。也许可以编辑你的问题,而不是将代码作为评论发布。 - muXXmit2X