summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qchar.h
diff options
context:
space:
mode:
authorEdward Welbourne <edward.welbourne@qt.io>2019-05-27 19:13:54 +0200
committerEdward Welbourne <edward.welbourne@qt.io>2019-07-10 17:05:30 +0200
commita9aa206b7b8ac4e69f8c46233b4080e00e845ff5 (patch)
tree0d19cb1f1a3b9d79d322e6e63f6f72160977ca67 /src/corelib/tools/qchar.h
parent85d3061c1cd4617ef09cb381320611c27da205a5 (diff)
Move text-related code out of corelib/tools/ to corelib/text/
This includes byte array, string, char, unicode, locale, collation and regular expressions. Change-Id: I8b125fa52c8c513eb57a0f1298b91910e5a0d786 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src/corelib/tools/qchar.h')
-rw-r--r--src/corelib/tools/qchar.h644
1 files changed, 0 insertions, 644 deletions
diff --git a/src/corelib/tools/qchar.h b/src/corelib/tools/qchar.h
deleted file mode 100644
index e028a24c24..0000000000
--- a/src/corelib/tools/qchar.h
+++ /dev/null
@@ -1,644 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 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$
-**
-****************************************************************************/
-
-#ifndef QCHAR_H
-#define QCHAR_H
-
-#include <QtCore/qglobal.h>
-
-QT_BEGIN_NAMESPACE
-
-
-class QString;
-
-struct QLatin1Char
-{
-public:
- Q_DECL_CONSTEXPR inline explicit QLatin1Char(char c) noexcept : ch(c) {}
- Q_DECL_CONSTEXPR inline char toLatin1() const noexcept { return ch; }
- Q_DECL_CONSTEXPR inline ushort unicode() const noexcept { return ushort(uchar(ch)); }
-
-private:
- char ch;
-};
-
-Q_DECL_CONSTEXPR inline bool operator==(char lhs, QLatin1Char rhs) noexcept { return lhs == rhs.toLatin1(); }
-Q_DECL_CONSTEXPR inline bool operator!=(char lhs, QLatin1Char rhs) noexcept { return lhs != rhs.toLatin1(); }
-Q_DECL_CONSTEXPR inline bool operator<=(char lhs, QLatin1Char rhs) noexcept { return lhs <= rhs.toLatin1(); }
-Q_DECL_CONSTEXPR inline bool operator>=(char lhs, QLatin1Char rhs) noexcept { return lhs >= rhs.toLatin1(); }
-Q_DECL_CONSTEXPR inline bool operator< (char lhs, QLatin1Char rhs) noexcept { return lhs < rhs.toLatin1(); }
-Q_DECL_CONSTEXPR inline bool operator> (char lhs, QLatin1Char rhs) noexcept { return lhs > rhs.toLatin1(); }
-
-Q_DECL_CONSTEXPR inline bool operator==(QLatin1Char lhs, char rhs) noexcept { return lhs.toLatin1() == rhs; }
-Q_DECL_CONSTEXPR inline bool operator!=(QLatin1Char lhs, char rhs) noexcept { return lhs.toLatin1() != rhs; }
-Q_DECL_CONSTEXPR inline bool operator<=(QLatin1Char lhs, char rhs) noexcept { return lhs.toLatin1() <= rhs; }
-Q_DECL_CONSTEXPR inline bool operator>=(QLatin1Char lhs, char rhs) noexcept { return lhs.toLatin1() >= rhs; }
-Q_DECL_CONSTEXPR inline bool operator< (QLatin1Char lhs, char rhs) noexcept { return lhs.toLatin1() < rhs; }
-Q_DECL_CONSTEXPR inline bool operator> (QLatin1Char lhs, char rhs) noexcept { return lhs.toLatin1() > rhs; }
-
-class Q_CORE_EXPORT QChar {
-public:
- enum SpecialCharacter {
- Null = 0x0000,
- Tabulation = 0x0009,
- LineFeed = 0x000a,
- CarriageReturn = 0x000d,
- Space = 0x0020,
- Nbsp = 0x00a0,
- SoftHyphen = 0x00ad,
- ReplacementCharacter = 0xfffd,
- ObjectReplacementCharacter = 0xfffc,
- ByteOrderMark = 0xfeff,
- ByteOrderSwapped = 0xfffe,
- ParagraphSeparator = 0x2029,
- LineSeparator = 0x2028,
- LastValidCodePoint = 0x10ffff
- };
-
- Q_DECL_CONSTEXPR QChar() noexcept : ucs(0) {}
- Q_DECL_CONSTEXPR QChar(ushort rc) noexcept : ucs(rc) {} // implicit
- Q_DECL_CONSTEXPR QChar(uchar c, uchar r) noexcept : ucs(ushort((r << 8) | c)) {}
- Q_DECL_CONSTEXPR QChar(short rc) noexcept : ucs(ushort(rc)) {} // implicit
- Q_DECL_CONSTEXPR QChar(uint rc) noexcept : ucs(ushort(rc & 0xffff)) {}
- Q_DECL_CONSTEXPR QChar(int rc) noexcept : ucs(ushort(rc & 0xffff)) {}
- Q_DECL_CONSTEXPR QChar(SpecialCharacter s) noexcept : ucs(ushort(s)) {} // implicit
- Q_DECL_CONSTEXPR QChar(QLatin1Char ch) noexcept : ucs(ch.unicode()) {} // implicit
-#if defined(Q_COMPILER_UNICODE_STRINGS)
- Q_DECL_CONSTEXPR QChar(char16_t ch) noexcept : ucs(ushort(ch)) {} // implicit
-#endif
-#if defined(Q_OS_WIN)
- Q_STATIC_ASSERT(sizeof(wchar_t) == sizeof(ushort));
-#endif
-#if defined(Q_OS_WIN) || defined(Q_CLANG_QDOC)
-# if !defined(_WCHAR_T_DEFINED) || defined(_NATIVE_WCHAR_T_DEFINED)
- Q_DECL_CONSTEXPR QChar(wchar_t ch) noexcept : ucs(ushort(ch)) {} // implicit
-# endif
-#endif
-
-#ifndef QT_NO_CAST_FROM_ASCII
- QT_ASCII_CAST_WARN Q_DECL_CONSTEXPR explicit QChar(char c) noexcept : ucs(uchar(c)) { }
-#ifndef QT_RESTRICTED_CAST_FROM_ASCII
- QT_ASCII_CAST_WARN Q_DECL_CONSTEXPR explicit QChar(uchar c) noexcept : ucs(c) { }
-#endif
-#endif
- // Unicode information
-
- enum Category
- {
- Mark_NonSpacing, // Mn
- Mark_SpacingCombining, // Mc
- Mark_Enclosing, // Me
-
- Number_DecimalDigit, // Nd
- Number_Letter, // Nl
- Number_Other, // No
-
- Separator_Space, // Zs
- Separator_Line, // Zl
- Separator_Paragraph, // Zp
-
- Other_Control, // Cc
- Other_Format, // Cf
- Other_Surrogate, // Cs
- Other_PrivateUse, // Co
- Other_NotAssigned, // Cn
-
- Letter_Uppercase, // Lu
- Letter_Lowercase, // Ll
- Letter_Titlecase, // Lt
- Letter_Modifier, // Lm
- Letter_Other, // Lo
-
- Punctuation_Connector, // Pc
- Punctuation_Dash, // Pd
- Punctuation_Open, // Ps
- Punctuation_Close, // Pe
- Punctuation_InitialQuote, // Pi
- Punctuation_FinalQuote, // Pf
- Punctuation_Other, // Po
-
- Symbol_Math, // Sm
- Symbol_Currency, // Sc
- Symbol_Modifier, // Sk
- Symbol_Other // So
- };
-
- enum Script
- {
- Script_Unknown,
- Script_Inherited,
- Script_Common,
-
- Script_Latin,
- Script_Greek,
- Script_Cyrillic,
- Script_Armenian,
- Script_Hebrew,
- Script_Arabic,
- Script_Syriac,
- Script_Thaana,
- Script_Devanagari,
- Script_Bengali,
- Script_Gurmukhi,
- Script_Gujarati,
- Script_Oriya,
- Script_Tamil,
- Script_Telugu,
- Script_Kannada,
- Script_Malayalam,
- Script_Sinhala,
- Script_Thai,
- Script_Lao,
- Script_Tibetan,
- Script_Myanmar,
- Script_Georgian,
- Script_Hangul,
- Script_Ethiopic,
- Script_Cherokee,
- Script_CanadianAboriginal,
- Script_Ogham,
- Script_Runic,
- Script_Khmer,
- Script_Mongolian,
- Script_Hiragana,
- Script_Katakana,
- Script_Bopomofo,
- Script_Han,
- Script_Yi,
- Script_OldItalic,
- Script_Gothic,
- Script_Deseret,
- Script_Tagalog,
- Script_Hanunoo,
- Script_Buhid,
- Script_Tagbanwa,
- Script_Coptic,
-
- // Unicode 4.0 additions
- Script_Limbu,
- Script_TaiLe,
- Script_LinearB,
- Script_Ugaritic,
- Script_Shavian,
- Script_Osmanya,
- Script_Cypriot,
- Script_Braille,
-
- // Unicode 4.1 additions
- Script_Buginese,
- Script_NewTaiLue,
- Script_Glagolitic,
- Script_Tifinagh,
- Script_SylotiNagri,
- Script_OldPersian,
- Script_Kharoshthi,
-
- // Unicode 5.0 additions
- Script_Balinese,
- Script_Cuneiform,
- Script_Phoenician,
- Script_PhagsPa,
- Script_Nko,
-
- // Unicode 5.1 additions
- Script_Sundanese,
- Script_Lepcha,
- Script_OlChiki,
- Script_Vai,
- Script_Saurashtra,
- Script_KayahLi,
- Script_Rejang,
- Script_Lycian,
- Script_Carian,
- Script_Lydian,
- Script_Cham,
-
- // Unicode 5.2 additions
- Script_TaiTham,
- Script_TaiViet,
- Script_Avestan,
- Script_EgyptianHieroglyphs,
- Script_Samaritan,
- Script_Lisu,
- Script_Bamum,
- Script_Javanese,
- Script_MeeteiMayek,
- Script_ImperialAramaic,
- Script_OldSouthArabian,
- Script_InscriptionalParthian,
- Script_InscriptionalPahlavi,
- Script_OldTurkic,
- Script_Kaithi,
-
- // Unicode 6.0 additions
- Script_Batak,
- Script_Brahmi,
- Script_Mandaic,
-
- // Unicode 6.1 additions
- Script_Chakma,
- Script_MeroiticCursive,
- Script_MeroiticHieroglyphs,
- Script_Miao,
- Script_Sharada,
- Script_SoraSompeng,
- Script_Takri,
-
- // Unicode 7.0 additions
- Script_CaucasianAlbanian,
- Script_BassaVah,
- Script_Duployan,
- Script_Elbasan,
- Script_Grantha,
- Script_PahawhHmong,
- Script_Khojki,
- Script_LinearA,
- Script_Mahajani,
- Script_Manichaean,
- Script_MendeKikakui,
- Script_Modi,
- Script_Mro,
- Script_OldNorthArabian,
- Script_Nabataean,
- Script_Palmyrene,
- Script_PauCinHau,
- Script_OldPermic,
- Script_PsalterPahlavi,
- Script_Siddham,
- Script_Khudawadi,
- Script_Tirhuta,
- Script_WarangCiti,
-
- // Unicode 8.0 additions
- Script_Ahom,
- Script_AnatolianHieroglyphs,
- Script_Hatran,
- Script_Multani,
- Script_OldHungarian,
- Script_SignWriting,
-
- // Unicode 9.0 additions
- Script_Adlam,
- Script_Bhaiksuki,
- Script_Marchen,
- Script_Newa,
- Script_Osage,
- Script_Tangut,
-
- // Unicode 10.0 additions
- Script_MasaramGondi,
- Script_Nushu,
- Script_Soyombo,
- Script_ZanabazarSquare,
-
- ScriptCount
- };
-
- enum Direction
- {
- DirL, DirR, DirEN, DirES, DirET, DirAN, DirCS, DirB, DirS, DirWS, DirON,
- DirLRE, DirLRO, DirAL, DirRLE, DirRLO, DirPDF, DirNSM, DirBN,
- DirLRI, DirRLI, DirFSI, DirPDI
- };
-
- enum Decomposition
- {
- NoDecomposition,
- Canonical,
- Font,
- NoBreak,
- Initial,
- Medial,
- Final,
- Isolated,
- Circle,
- Super,
- Sub,
- Vertical,
- Wide,
- Narrow,
- Small,
- Square,
- Compat,
- Fraction
- };
-
- enum JoiningType {
- Joining_None,
- Joining_Causing,
- Joining_Dual,
- Joining_Right,
- Joining_Left,
- Joining_Transparent
- };
-
-#if QT_DEPRECATED_SINCE(5, 3)
- enum Joining
- {
- OtherJoining, Dual, Right, Center
- };
-#endif
-
- enum CombiningClass
- {
- Combining_BelowLeftAttached = 200,
- Combining_BelowAttached = 202,
- Combining_BelowRightAttached = 204,
- Combining_LeftAttached = 208,
- Combining_RightAttached = 210,
- Combining_AboveLeftAttached = 212,
- Combining_AboveAttached = 214,
- Combining_AboveRightAttached = 216,
-
- Combining_BelowLeft = 218,
- Combining_Below = 220,
- Combining_BelowRight = 222,
- Combining_Left = 224,
- Combining_Right = 226,
- Combining_AboveLeft = 228,
- Combining_Above = 230,
- Combining_AboveRight = 232,
-
- Combining_DoubleBelow = 233,
- Combining_DoubleAbove = 234,
- Combining_IotaSubscript = 240
- };
-
- enum UnicodeVersion {
- Unicode_Unassigned,
- Unicode_1_1,
- Unicode_2_0,
- Unicode_2_1_2,
- Unicode_3_0,
- Unicode_3_1,
- Unicode_3_2,
- Unicode_4_0,
- Unicode_4_1,
- Unicode_5_0,
- Unicode_5_1,
- Unicode_5_2,
- Unicode_6_0,
- Unicode_6_1,
- Unicode_6_2,
- Unicode_6_3,
- Unicode_7_0,
- Unicode_8_0,
- Unicode_9_0,
- Unicode_10_0
- };
- // ****** WHEN ADDING FUNCTIONS, CONSIDER ADDING TO QCharRef TOO
-
- inline Category category() const noexcept { return QChar::category(ucs); }
- inline Direction direction() const noexcept { return QChar::direction(ucs); }
- inline JoiningType joiningType() const noexcept { return QChar::joiningType(ucs); }
-#if QT_DEPRECATED_SINCE(5, 3)
- QT_DEPRECATED inline Joining joining() const noexcept
- {
- switch (QChar::joiningType(ucs)) {
- case QChar::Joining_Causing: return QChar::Center;
- case QChar::Joining_Dual: return QChar::Dual;
- case QChar::Joining_Right: return QChar::Right;
- case QChar::Joining_None:
- case QChar::Joining_Left:
- case QChar::Joining_Transparent:
- default: return QChar::OtherJoining;
- }
- }
-#endif
- inline unsigned char combiningClass() const noexcept { return QChar::combiningClass(ucs); }
-
- inline QChar mirroredChar() const noexcept { return QChar(QChar::mirroredChar(ucs)); }
- inline bool hasMirrored() const noexcept { return QChar::hasMirrored(ucs); }
-
- QString decomposition() const;
- inline Decomposition decompositionTag() const noexcept { return QChar::decompositionTag(ucs); }
-
- inline int digitValue() const noexcept { return QChar::digitValue(ucs); }
- inline QChar toLower() const noexcept { return QChar(QChar::toLower(ucs)); }
- inline QChar toUpper() const noexcept { return QChar(QChar::toUpper(ucs)); }
- inline QChar toTitleCase() const noexcept { return QChar(QChar::toTitleCase(ucs)); }
- inline QChar toCaseFolded() const noexcept { return QChar(QChar::toCaseFolded(ucs)); }
-
- inline Script script() const noexcept { return QChar::script(ucs); }
-
- inline UnicodeVersion unicodeVersion() const noexcept { return QChar::unicodeVersion(ucs); }
-
-#if QT_DEPRECATED_SINCE(5, 0)
- QT_DEPRECATED Q_DECL_CONSTEXPR inline char toAscii() const noexcept { return toLatin1(); }
-#endif
- Q_DECL_CONSTEXPR inline char toLatin1() const noexcept { return ucs > 0xff ? '\0' : char(ucs); }
- Q_DECL_CONSTEXPR inline ushort unicode() const noexcept { return ucs; }
- Q_DECL_RELAXED_CONSTEXPR inline ushort &unicode() noexcept { return ucs; }
-
-#if QT_DEPRECATED_SINCE(5, 0)
- QT_DEPRECATED static Q_DECL_CONSTEXPR inline QChar fromAscii(char c) noexcept
- { return fromLatin1(c); }
-#endif
- static Q_DECL_CONSTEXPR inline QChar fromLatin1(char c) noexcept { return QChar(ushort(uchar(c))); }
-
- Q_DECL_CONSTEXPR inline bool isNull() const noexcept { return ucs == 0; }
-
- inline bool isPrint() const noexcept { return QChar::isPrint(ucs); }
- Q_DECL_CONSTEXPR inline bool isSpace() const noexcept { return QChar::isSpace(ucs); }
- inline bool isMark() const noexcept { return QChar::isMark(ucs); }
- inline bool isPunct() const noexcept { return QChar::isPunct(ucs); }
- inline bool isSymbol() const noexcept { return QChar::isSymbol(ucs); }
- Q_DECL_CONSTEXPR inline bool isLetter() const noexcept { return QChar::isLetter(ucs); }
- Q_DECL_CONSTEXPR inline bool isNumber() const noexcept { return QChar::isNumber(ucs); }
- Q_DECL_CONSTEXPR inline bool isLetterOrNumber() const noexcept { return QChar::isLetterOrNumber(ucs); }
- Q_DECL_CONSTEXPR inline bool isDigit() const noexcept { return QChar::isDigit(ucs); }
- Q_DECL_CONSTEXPR inline bool isLower() const noexcept { return QChar::isLower(ucs); }
- Q_DECL_CONSTEXPR inline bool isUpper() const noexcept { return QChar::isUpper(ucs); }
- Q_DECL_CONSTEXPR inline bool isTitleCase() const noexcept { return QChar::isTitleCase(ucs); }
-
- Q_DECL_CONSTEXPR inline bool isNonCharacter() const noexcept { return QChar::isNonCharacter(ucs); }
- Q_DECL_CONSTEXPR inline bool isHighSurrogate() const noexcept { return QChar::isHighSurrogate(ucs); }
- Q_DECL_CONSTEXPR inline bool isLowSurrogate() const noexcept { return QChar::isLowSurrogate(ucs); }
- Q_DECL_CONSTEXPR inline bool isSurrogate() const noexcept { return QChar::isSurrogate(ucs); }
-
- Q_DECL_CONSTEXPR inline uchar cell() const noexcept { return uchar(ucs & 0xff); }
- Q_DECL_CONSTEXPR inline uchar row() const noexcept { return uchar((ucs>>8)&0xff); }
- Q_DECL_RELAXED_CONSTEXPR inline void setCell(uchar acell) noexcept { ucs = ushort((ucs & 0xff00) + acell); }
- Q_DECL_RELAXED_CONSTEXPR inline void setRow(uchar arow) noexcept { ucs = ushort((ushort(arow)<<8) + (ucs&0xff)); }
-
- static Q_DECL_CONSTEXPR inline bool isNonCharacter(uint ucs4) noexcept
- {
- return ucs4 >= 0xfdd0 && (ucs4 <= 0xfdef || (ucs4 & 0xfffe) == 0xfffe);
- }
- static Q_DECL_CONSTEXPR inline bool isHighSurrogate(uint ucs4) noexcept
- {
- return ((ucs4 & 0xfffffc00) == 0xd800);
- }
- static Q_DECL_CONSTEXPR inline bool isLowSurrogate(uint ucs4) noexcept
- {
- return ((ucs4 & 0xfffffc00) == 0xdc00);
- }
- static Q_DECL_CONSTEXPR inline bool isSurrogate(uint ucs4) noexcept
- {
- return (ucs4 - 0xd800u < 2048u);
- }
- static Q_DECL_CONSTEXPR inline bool requiresSurrogates(uint ucs4) noexcept
- {
- return (ucs4 >= 0x10000);
- }
- static Q_DECL_CONSTEXPR inline uint surrogateToUcs4(ushort high, ushort low) noexcept
- {
- return (uint(high)<<10) + low - 0x35fdc00;
- }
- static Q_DECL_CONSTEXPR inline uint surrogateToUcs4(QChar high, QChar low) noexcept
- {
- return surrogateToUcs4(high.ucs, low.ucs);
- }
- static Q_DECL_CONSTEXPR inline ushort highSurrogate(uint ucs4) noexcept
- {
- return ushort((ucs4>>10) + 0xd7c0);
- }
- static Q_DECL_CONSTEXPR inline ushort lowSurrogate(uint ucs4) noexcept
- {
- return ushort(ucs4%0x400 + 0xdc00);
- }
-
- static Category QT_FASTCALL category(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
- static Direction QT_FASTCALL direction(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
- static JoiningType QT_FASTCALL joiningType(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
-#if QT_DEPRECATED_SINCE(5, 3)
- QT_DEPRECATED static Joining QT_FASTCALL joining(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
-#endif
- static unsigned char QT_FASTCALL combiningClass(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
-
- static uint QT_FASTCALL mirroredChar(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
- static bool QT_FASTCALL hasMirrored(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
-
- static QString QT_FASTCALL decomposition(uint ucs4);
- static Decomposition QT_FASTCALL decompositionTag(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
-
- static int QT_FASTCALL digitValue(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
- static uint QT_FASTCALL toLower(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
- static uint QT_FASTCALL toUpper(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
- static uint QT_FASTCALL toTitleCase(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
- static uint QT_FASTCALL toCaseFolded(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
-
- static Script QT_FASTCALL script(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
-
- static UnicodeVersion QT_FASTCALL unicodeVersion(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
-
- static UnicodeVersion QT_FASTCALL currentUnicodeVersion() noexcept Q_DECL_CONST_FUNCTION;
-
- static bool QT_FASTCALL isPrint(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
- static Q_DECL_CONSTEXPR inline bool isSpace(uint ucs4) noexcept Q_DECL_CONST_FUNCTION
- {
- // note that [0x09..0x0d] + 0x85 are exceptional Cc-s and must be handled explicitly
- return ucs4 == 0x20 || (ucs4 <= 0x0d && ucs4 >= 0x09)
- || (ucs4 > 127 && (ucs4 == 0x85 || ucs4 == 0xa0 || QChar::isSpace_helper(ucs4)));
- }
- static bool QT_FASTCALL isMark(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
- static bool QT_FASTCALL isPunct(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
- static bool QT_FASTCALL isSymbol(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
- static Q_DECL_CONSTEXPR inline bool isLetter(uint ucs4) noexcept Q_DECL_CONST_FUNCTION
- {
- return (ucs4 >= 'A' && ucs4 <= 'z' && (ucs4 >= 'a' || ucs4 <= 'Z'))
- || (ucs4 > 127 && QChar::isLetter_helper(ucs4));
- }
- static Q_DECL_CONSTEXPR inline bool isNumber(uint ucs4) noexcept Q_DECL_CONST_FUNCTION
- { return (ucs4 <= '9' && ucs4 >= '0') || (ucs4 > 127 && QChar::isNumber_helper(ucs4)); }
- static Q_DECL_CONSTEXPR inline bool isLetterOrNumber(uint ucs4) noexcept Q_DECL_CONST_FUNCTION
- {
- return (ucs4 >= 'A' && ucs4 <= 'z' && (ucs4 >= 'a' || ucs4 <= 'Z'))
- || (ucs4 >= '0' && ucs4 <= '9')
- || (ucs4 > 127 && QChar::isLetterOrNumber_helper(ucs4));
- }
- static Q_DECL_CONSTEXPR inline bool isDigit(uint ucs4) noexcept Q_DECL_CONST_FUNCTION
- { return (ucs4 <= '9' && ucs4 >= '0') || (ucs4 > 127 && QChar::category(ucs4) == Number_DecimalDigit); }
- static Q_DECL_CONSTEXPR inline bool isLower(uint ucs4) noexcept Q_DECL_CONST_FUNCTION
- { return (ucs4 <= 'z' && ucs4 >= 'a') || (ucs4 > 127 && QChar::category(ucs4) == Letter_Lowercase); }
- static Q_DECL_CONSTEXPR inline bool isUpper(uint ucs4) noexcept Q_DECL_CONST_FUNCTION
- { return (ucs4 <= 'Z' && ucs4 >= 'A') || (ucs4 > 127 && QChar::category(ucs4) == Letter_Uppercase); }
- static Q_DECL_CONSTEXPR inline bool isTitleCase(uint ucs4) noexcept Q_DECL_CONST_FUNCTION
- { return ucs4 > 127 && QChar::category(ucs4) == Letter_Titlecase; }
-
-private:
- static bool QT_FASTCALL isSpace_helper(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
- static bool QT_FASTCALL isLetter_helper(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
- static bool QT_FASTCALL isNumber_helper(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
- static bool QT_FASTCALL isLetterOrNumber_helper(uint ucs4) noexcept Q_DECL_CONST_FUNCTION;
-
-#ifdef QT_NO_CAST_FROM_ASCII
- QChar(char c) noexcept;
- QChar(uchar c) noexcept;
-#endif
-
- friend Q_DECL_CONSTEXPR bool operator==(QChar, QChar) noexcept;
- friend Q_DECL_CONSTEXPR bool operator< (QChar, QChar) noexcept;
- ushort ucs;
-};
-
-Q_DECLARE_TYPEINFO(QChar, Q_MOVABLE_TYPE);
-
-Q_DECL_CONSTEXPR inline bool operator==(QChar c1, QChar c2) noexcept { return c1.ucs == c2.ucs; }
-Q_DECL_CONSTEXPR inline bool operator< (QChar c1, QChar c2) noexcept { return c1.ucs < c2.ucs; }
-
-Q_DECL_CONSTEXPR inline bool operator!=(QChar c1, QChar c2) noexcept { return !operator==(c1, c2); }
-Q_DECL_CONSTEXPR inline bool operator>=(QChar c1, QChar c2) noexcept { return !operator< (c1, c2); }
-Q_DECL_CONSTEXPR inline bool operator> (QChar c1, QChar c2) noexcept { return operator< (c2, c1); }
-Q_DECL_CONSTEXPR inline bool operator<=(QChar c1, QChar c2) noexcept { return !operator< (c2, c1); }
-
-
-Q_DECL_CONSTEXPR inline bool operator==(QChar lhs, std::nullptr_t) noexcept { return lhs.isNull(); }
-Q_DECL_CONSTEXPR inline bool operator< (QChar, std::nullptr_t) noexcept { return false; }
-Q_DECL_CONSTEXPR inline bool operator==(std::nullptr_t, QChar rhs) noexcept { return rhs.isNull(); }
-Q_DECL_CONSTEXPR inline bool operator< (std::nullptr_t, QChar rhs) noexcept { return !rhs.isNull(); }
-
-Q_DECL_CONSTEXPR inline bool operator!=(QChar lhs, std::nullptr_t) noexcept { return !operator==(lhs, nullptr); }
-Q_DECL_CONSTEXPR inline bool operator>=(QChar lhs, std::nullptr_t) noexcept { return !operator< (lhs, nullptr); }
-Q_DECL_CONSTEXPR inline bool operator> (QChar lhs, std::nullptr_t) noexcept { return operator< (nullptr, lhs); }
-Q_DECL_CONSTEXPR inline bool operator<=(QChar lhs, std::nullptr_t) noexcept { return !operator< (nullptr, lhs); }
-
-Q_DECL_CONSTEXPR inline bool operator!=(std::nullptr_t, QChar rhs) noexcept { return !operator==(nullptr, rhs); }
-Q_DECL_CONSTEXPR inline bool operator>=(std::nullptr_t, QChar rhs) noexcept { return !operator< (nullptr, rhs); }
-Q_DECL_CONSTEXPR inline bool operator> (std::nullptr_t, QChar rhs) noexcept { return operator< (rhs, nullptr); }
-Q_DECL_CONSTEXPR inline bool operator<=(std::nullptr_t, QChar rhs) noexcept { return !operator< (rhs, nullptr); }
-
-#ifndef QT_NO_DATASTREAM
-Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, QChar);
-Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QChar &);
-#endif
-
-QT_END_NAMESPACE
-
-#endif // QCHAR_H