qt5base-lts/tests/auto
Marc Mutz 00a8be85d1 Long live QStringView!
QStringView is a simple container for (const QChar*, int) and (const
char16_t*, size_t). It acts as a replacement interface type for const
QString and const QStringRef, and enables passing all kinds of
string-like types to functions otherwise expecting const QString& -
without the need to convert to QString first.

The use of this new class is guarded by a macro that enables three
levels of QStringView support:

 1. offer QStringView, overload some functions taking QString with
    QStringView

 2. like 1, but remove all overloads of functions taking QStringRef,
    leaving only the function taking QStringView.  Do this only where
    QStringRef overloads tradionally existed.

 3. like 2, but replace functions taking QString, too.

This is done in order to measure the impact of QStringView on code
size and execution speed, and to help guide the decision of which
level to choose for Qt 6.

This first patch adds QStringView with most of its planned
constructors, but not much more than iterators and isNull()/isEmpty().

Further patches will add support for QStringView to QStringBuilder,
add QStringView overloads of functions taking QString, and add the
complete API of const QString to QStringView.

[ChangeLog][QtCore][QStringView] New class, superseding const QString
and QStringRef as function parameters, accepting a wide variety of
UTF-16 string data sources, e.g. u"string", std::u16string{,_view},
and, on Windows, L"string", std::wstring{,_view} without converting to
QString first.

Change-Id: Iac273e46b2c61ec2c31b3dacebb29500599d6898
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2017-03-24 18:34:35 +00:00
..
android Updated license headers 2016-01-21 18:55:18 +00:00
bic/data Binary compatibility files for QtBase (5.8.0) 2017-02-14 12:42:20 +00:00
cmake CMake: Create a Qt5::<ModuleName>Private target for each module 2016-12-23 19:24:35 +00:00
compilerwarnings/data Updated license headers 2016-01-21 18:55:18 +00:00
concurrent Adapt to the C++ SIC introduced by P0012: noexcept overloading 2017-02-17 13:57:30 +00:00
corelib Long live QStringView! 2017-03-24 18:34:35 +00:00
dbus Fix building of various examples and tools with -no-feature-process 2017-03-06 14:16:13 +00:00
gui Introduce QVulkanWindow 2017-03-22 15:40:57 +00:00
guiapplauncher Fix path to examples part of tst_GuiAppLauncher 2015-02-13 07:28:15 +00:00
installed_cmake Add a unit test for testing Qt in its install location. 2013-07-02 23:08:54 +02:00
network Merge remote-tracking branch 'origin/5.9' into dev 2017-03-20 09:00:44 +01:00
opengl Add support for OpenGL 3.2+ core profile contexts in QPainter 2017-01-23 11:34:05 +00:00
other Merge remote-tracking branch 'origin/5.9' into dev 2017-03-20 09:00:44 +01:00
printsupport Drop unnecessary dependencies from some tests 2017-01-10 16:34:52 +00:00
shared Remove workaround for potentially unavailable pasteboard in macOS 2017-03-07 01:04:46 +00:00
sql Merge remote-tracking branch 'origin/5.9' into dev 2017-03-20 09:00:44 +01:00
testlib Properly use the "process" feature 2017-02-27 15:44:46 +00:00
tools qmake: Add test functions for comparing version numbers 2017-03-20 21:56:01 +00:00
widgets QGroupBox tests: Correct spelling of "release" 2017-03-22 18:30:14 +00:00
xml Merge remote-tracking branch 'origin/5.7' into 5.8 2016-11-01 06:02:55 +01:00
auto.pro Fix building of various examples and tools with -no-feature-process 2017-03-06 14:16:13 +00:00
network-settings.h Merge remote-tracking branch 'origin/5.6' into 5.7 2016-05-06 15:36:44 +02:00