QStringView: clean up storage_type

Now that all supported compilers support char16_t, we don't need the
storage_type == wchar_t hack for MSVC anymore.

Remove it. Adapt docs.

Change-Id: I55df6c8a9fa5a9c7e6f53ba89f3850956b369061
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
This commit is contained in:
Marc Mutz 2019-07-27 11:00:48 +03:00
parent 353a6946b1
commit afb8ba3fd2
2 changed files with 3 additions and 11 deletions

View File

@ -57,9 +57,8 @@ QT_BEGIN_NAMESPACE
The UTF-16 string may be represented as an array (or an array-compatible
data-structure such as QString,
std::basic_string, etc.) of QChar, \c ushort, \c char16_t (on compilers that
support C++11 Unicode strings) or (on platforms, such as Windows,
where it is a 16-bit type) \c wchar_t.
std::basic_string, etc.) of QChar, \c ushort, \c char16_t or
(on platforms, such as Windows, where it is a 16-bit type) \c wchar_t.
QStringView is designed as an interface type; its main use-case is
as a function parameter type. When QStringViews are used as automatic
@ -115,8 +114,7 @@ QT_BEGIN_NAMESPACE
/*!
\typedef QStringView::storage_type
Alias for \c{char16_t} for non-Windows or if Q_COMPILER_UNICODE_STRINGS
is defined. Otherwise, alias for \c{wchar_t}.
Alias for \c{char16_t}.
*/
/*!

View File

@ -62,9 +62,7 @@ struct IsCompatibleCharTypeHelper
: std::integral_constant<bool,
std::is_same<Char, QChar>::value ||
std::is_same<Char, ushort>::value ||
#if defined(Q_COMPILER_UNICODE_STRINGS)
std::is_same<Char, char16_t>::value ||
#endif
(std::is_same<Char, wchar_t>::value && sizeof(wchar_t) == sizeof(QChar))> {};
template <typename Char>
struct IsCompatibleCharType
@ -105,11 +103,7 @@ struct IsCompatibleStdBasicString
class QStringView
{
public:
#if defined(Q_OS_WIN) && !defined(Q_COMPILER_UNICODE_STRINGS)
typedef wchar_t storage_type;
#else
typedef char16_t storage_type;
#endif
typedef const QChar value_type;
typedef std::ptrdiff_t difference_type;
typedef qsizetype size_type;