diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/corelib/text/qstringalgorithms.h | 26 | ||||
-rw-r--r-- | src/corelib/text/qstringfwd.h | 86 | ||||
-rw-r--r-- | src/corelib/text/qutf8stringview.h | 9 |
4 files changed, 88 insertions, 34 deletions
diff --git a/src/corelib/CMakeLists.txt b/src/corelib/CMakeLists.txt index 34980c4c45..f44af721e5 100644 --- a/src/corelib/CMakeLists.txt +++ b/src/corelib/CMakeLists.txt @@ -186,6 +186,7 @@ qt_internal_add_module(Core text/qstringbuilder.cpp text/qstringbuilder.h text/qstringconverter_base.h text/qstringconverter.cpp text/qstringconverter.h text/qstringconverter_p.h + text/qstringfwd.h text/qstringiterator_p.h text/qstringlist.cpp text/qstringlist.h text/qstringliteral.h diff --git a/src/corelib/text/qstringalgorithms.h b/src/corelib/text/qstringalgorithms.h index 490e4376db..40882a73ee 100644 --- a/src/corelib/text/qstringalgorithms.h +++ b/src/corelib/text/qstringalgorithms.h @@ -41,6 +41,7 @@ #define QSTRINGALGORITHMS_H #include <QtCore/qnamespace.h> +#include <QtCore/qstringfwd.h> #include <QtCore/qcontainerfwd.h> #if 0 #pragma qt_class(QStringAlgorithms) @@ -48,31 +49,6 @@ QT_BEGIN_NAMESPACE -#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0) -# define QT_BEGIN_HAS_CHAR8_T_NAMESPACE inline namespace q_has_char8_t { -# define QT_BEGIN_NO_CHAR8_T_NAMESPACE namespace q_no_char8_t { -#else -# define QT_BEGIN_HAS_CHAR8_T_NAMESPACE namespace q_has_char8_t { -# define QT_BEGIN_NO_CHAR8_T_NAMESPACE inline namespace q_no_char8_t { -#endif -#define QT_END_HAS_CHAR8_T_NAMESPACE } -#define QT_END_NO_CHAR8_T_NAMESPACE } - -// declare namespaces: -QT_BEGIN_HAS_CHAR8_T_NAMESPACE -QT_END_HAS_CHAR8_T_NAMESPACE -QT_BEGIN_NO_CHAR8_T_NAMESPACE -QT_END_NO_CHAR8_T_NAMESPACE - -class QByteArray; -class QLatin1String; -class QStringView; -template <bool> class QBasicUtf8StringView; -class QAnyStringView; -class QChar; -class QRegularExpression; -class QRegularExpressionMatch; - namespace QtPrivate { [[nodiscard]] Q_CORE_EXPORT Q_DECL_PURE_FUNCTION qsizetype qustrlen(const char16_t *str) noexcept; diff --git a/src/corelib/text/qstringfwd.h b/src/corelib/text/qstringfwd.h new file mode 100644 index 0000000000..761e430955 --- /dev/null +++ b/src/corelib/text/qstringfwd.h @@ -0,0 +1,86 @@ +/**************************************************************************** +** +** Copyright (C) 2022 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the QtCore module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 3 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL3 included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 3 requirements +** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 2.0 or (at your option) the GNU General +** Public license version 3 or any later version approved by the KDE Free +** Qt Foundation. The licenses are as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-2.0.html and +** https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <QtCore/qglobal.h> + +#ifndef QSTRINGFWD_H +#define QSTRINGFWD_H + +QT_BEGIN_NAMESPACE + +#if QT_VERSION >= QT_VERSION_CHECK(7, 0, 0) +# define QT_BEGIN_HAS_CHAR8_T_NAMESPACE inline namespace q_has_char8_t { +# define QT_BEGIN_NO_CHAR8_T_NAMESPACE namespace q_no_char8_t { +#else +# define QT_BEGIN_HAS_CHAR8_T_NAMESPACE namespace q_has_char8_t { +# define QT_BEGIN_NO_CHAR8_T_NAMESPACE inline namespace q_no_char8_t { +#endif +#define QT_END_HAS_CHAR8_T_NAMESPACE } +#define QT_END_NO_CHAR8_T_NAMESPACE } + +// declare namespaces: +QT_BEGIN_HAS_CHAR8_T_NAMESPACE +QT_END_HAS_CHAR8_T_NAMESPACE +QT_BEGIN_NO_CHAR8_T_NAMESPACE +QT_END_NO_CHAR8_T_NAMESPACE + +class QByteArray; +class QByteArrayView; +class QLatin1String; +class QStringView; +template <bool> class QBasicUtf8StringView; +class QAnyStringView; +class QChar; +class QRegularExpression; +class QRegularExpressionMatch; + +#ifndef Q_CLANG_QDOC +// ### Qt 7: remove the non-char8_t version of QUtf8StringView +QT_BEGIN_NO_CHAR8_T_NAMESPACE +using QUtf8StringView = QBasicUtf8StringView<false>; +QT_END_NO_CHAR8_T_NAMESPACE + +QT_BEGIN_HAS_CHAR8_T_NAMESPACE +using QUtf8StringView = QBasicUtf8StringView<true>; +QT_END_HAS_CHAR8_T_NAMESPACE +#endif // Q_CLANG_QDOC + +QT_END_NAMESPACE + +#endif // QSTRINGFWD_H diff --git a/src/corelib/text/qutf8stringview.h b/src/corelib/text/qutf8stringview.h index 2d21a0e5bb..bec6f96953 100644 --- a/src/corelib/text/qutf8stringview.h +++ b/src/corelib/text/qutf8stringview.h @@ -361,15 +361,6 @@ private: #else template <bool UseChar8T> Q_DECLARE_TYPEINFO_BODY(QBasicUtf8StringView<UseChar8T>, Q_PRIMITIVE_TYPE); - -// ### Qt 7: remove the non-char8_t version of QUtf8StringView -QT_BEGIN_NO_CHAR8_T_NAMESPACE -using QUtf8StringView = QBasicUtf8StringView<false>; -QT_END_NO_CHAR8_T_NAMESPACE - -QT_BEGIN_HAS_CHAR8_T_NAMESPACE -using QUtf8StringView = QBasicUtf8StringView<true>; -QT_END_HAS_CHAR8_T_NAMESPACE #endif // Q_CLANG_QDOC template <typename QStringLike, std::enable_if_t<std::is_same_v<QStringLike, QByteArray>, bool> = true> |