diff options
author | Edward Welbourne <edward.welbourne@qt.io> | 2020-05-29 13:27:40 +0200 |
---|---|---|
committer | Edward Welbourne <edward.welbourne@qt.io> | 2020-06-04 10:39:53 +0200 |
commit | 135204bdf6a0e6b202fcde7248ac71b1a5bc6109 (patch) | |
tree | 2d77c64db8f16582bf5c7a270e267d78d8ccab89 /src/corelib | |
parent | 3a8aeef897ce6d0e97e597953a9db308b910bbe6 (diff) |
Overhaul documentation of QByteArray numeric conversions
A few pet peeves, a bunch of missing details and some phrasing I like
better.
Telling folk you're using "base 10" in fact communicates no
information; it *assumes* a base that folk shall read that text with
and tells them they are indeed using that. If they happen to be
reading with a different assumption than you, they'll duly see you
confirming their expectation. If you mean "base ten", say so.
Values "between 2 and 36" may nor may not include the bounds,
depending on weird cultural cues and contextual complications. Be
explicit about octal being base 8 and hexadecimal being base 16; most
readers shall know, but best to be clear. Be explicit about the digits
used for bases beyond ten.
Mention that QLocale is the way to do locale-sensitive conversions.
Change-Id: I4efcec6242644f37a48ff6391b96ed5b371d5be8
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/text/qbytearray.cpp | 170 |
1 files changed, 96 insertions, 74 deletions
diff --git a/src/corelib/text/qbytearray.cpp b/src/corelib/text/qbytearray.cpp index 193cca515d..16635c4dd9 100644 --- a/src/corelib/text/qbytearray.cpp +++ b/src/corelib/text/qbytearray.cpp @@ -3728,13 +3728,14 @@ T toIntegral_helper(const char *data, bool *ok, int base) } /*! - Returns the byte array converted to a \c {long long} using base \a - base, which is 10 by default and must be between 2 and 36, or 0. + Returns the byte array converted to a \c {long long} using base \a base, + which is ten by default. Bases 0 and 2 through 36 are supported, using + letters for digits beyond 9; A is ten, B is eleven and so on. - If \a base is 0, the base is determined automatically using the - following rules: If the byte array begins with "0x", it is assumed to - be hexadecimal; if it begins with "0", it is assumed to be octal; - otherwise it is assumed to be decimal. + If \a base is 0, the base is determined automatically using the following + rules: If the byte array begins with "0x", it is assumed to be hexadecimal + (base 16); otherwise, if it begins with "0", it is assumed to be octal (base + 8); otherwise it is assumed to be decimal. Returns 0 if the conversion fails. @@ -3742,7 +3743,8 @@ T toIntegral_helper(const char *data, bool *ok, int base) to \c false, and success by setting *\a{ok} to \c true. \note The conversion of the number is performed in the default C locale, - irrespective of the user's locale. + regardless of the user's locale. Use QLocale to perform locale-aware + conversions between numbers and strings. \sa number() */ @@ -3753,14 +3755,14 @@ qlonglong QByteArray::toLongLong(bool *ok, int base) const } /*! - Returns the byte array converted to an \c {unsigned long long} - using base \a base, which is 10 by default and must be between 2 - and 36, or 0. + Returns the byte array converted to an \c {unsigned long long} using base \a + base, which is ten by default. Bases 0 and 2 through 36 are supported, using + letters for digits beyond 9; A is ten, B is eleven and so on. - If \a base is 0, the base is determined automatically using the - following rules: If the byte array begins with "0x", it is assumed to - be hexadecimal; if it begins with "0", it is assumed to be octal; - otherwise it is assumed to be decimal. + If \a base is 0, the base is determined automatically using the following + rules: If the byte array begins with "0x", it is assumed to be hexadecimal + (base 16); otherwise, if it begins with "0", it is assumed to be octal (base + 8); otherwise it is assumed to be decimal. Returns 0 if the conversion fails. @@ -3768,7 +3770,8 @@ qlonglong QByteArray::toLongLong(bool *ok, int base) const to \c false, and success by setting *\a{ok} to \c true. \note The conversion of the number is performed in the default C locale, - irrespective of the user's locale. + regardless of the user's locale. Use QLocale to perform locale-aware + conversions between numbers and strings. \sa number() */ @@ -3779,13 +3782,14 @@ qulonglong QByteArray::toULongLong(bool *ok, int base) const } /*! - Returns the byte array converted to an \c int using base \a - base, which is 10 by default and must be between 2 and 36, or 0. + Returns the byte array converted to an \c int using base \a base, which is + ten by default. Bases 0 and 2 through 36 are supported, using letters for + digits beyond 9; A is ten, B is eleven and so on. - If \a base is 0, the base is determined automatically using the - following rules: If the byte array begins with "0x", it is assumed to - be hexadecimal; if it begins with "0", it is assumed to be octal; - otherwise it is assumed to be decimal. + If \a base is 0, the base is determined automatically using the following + rules: If the byte array begins with "0x", it is assumed to be hexadecimal + (base 16); otherwise, if it begins with "0", it is assumed to be octal (base + 8); otherwise it is assumed to be decimal. Returns 0 if the conversion fails. @@ -3795,7 +3799,8 @@ qulonglong QByteArray::toULongLong(bool *ok, int base) const \snippet code/src_corelib_text_qbytearray.cpp 36 \note The conversion of the number is performed in the default C locale, - irrespective of the user's locale. + regardless of the user's locale. Use QLocale to perform locale-aware + conversions between numbers and strings. \sa number() */ @@ -3806,13 +3811,14 @@ int QByteArray::toInt(bool *ok, int base) const } /*! - Returns the byte array converted to an \c {unsigned int} using base \a - base, which is 10 by default and must be between 2 and 36, or 0. + Returns the byte array converted to an \c {unsigned int} using base \a base, + which is ten by default. Bases 0 and 2 through 36 are supported, using + letters for digits beyond 9; A is ten, B is eleven and so on. - If \a base is 0, the base is determined automatically using the - following rules: If the byte array begins with "0x", it is assumed to - be hexadecimal; if it begins with "0", it is assumed to be octal; - otherwise it is assumed to be decimal. + If \a base is 0, the base is determined automatically using the following + rules: If the byte array begins with "0x", it is assumed to be hexadecimal + (base 16); otherwise, if it begins with "0", it is assumed to be octal (base + 8); otherwise it is assumed to be decimal. Returns 0 if the conversion fails. @@ -3820,7 +3826,8 @@ int QByteArray::toInt(bool *ok, int base) const to \c false, and success by setting *\a{ok} to \c true. \note The conversion of the number is performed in the default C locale, - irrespective of the user's locale. + regardless of the user's locale. Use QLocale to perform locale-aware + conversions between numbers and strings. \sa number() */ @@ -3833,13 +3840,14 @@ uint QByteArray::toUInt(bool *ok, int base) const /*! \since 4.1 - Returns the byte array converted to a \c long int using base \a - base, which is 10 by default and must be between 2 and 36, or 0. + Returns the byte array converted to a \c long int using base \a base, which + is ten by default. Bases 0 and 2 through 36 are supported, using letters for + digits beyond 9; A is ten, B is eleven and so on. - If \a base is 0, the base is determined automatically using the - following rules: If the byte array begins with "0x", it is assumed to - be hexadecimal; if it begins with "0", it is assumed to be octal; - otherwise it is assumed to be decimal. + If \a base is 0, the base is determined automatically using the following + rules: If the byte array begins with "0x", it is assumed to be hexadecimal + (base 16); otherwise, if it begins with "0", it is assumed to be octal (base + 8); otherwise it is assumed to be decimal. Returns 0 if the conversion fails. @@ -3849,7 +3857,8 @@ uint QByteArray::toUInt(bool *ok, int base) const \snippet code/src_corelib_text_qbytearray.cpp 37 \note The conversion of the number is performed in the default C locale, - irrespective of the user's locale. + regardless of the user's locale. Use QLocale to perform locale-aware + conversions between numbers and strings. \sa number() */ @@ -3862,12 +3871,13 @@ long QByteArray::toLong(bool *ok, int base) const \since 4.1 Returns the byte array converted to an \c {unsigned long int} using base \a - base, which is 10 by default and must be between 2 and 36, or 0. + base, which is ten by default. Bases 0 and 2 through 36 are supported, using + letters for digits beyond 9; A is ten, B is eleven and so on. - If \a base is 0, the base is determined automatically using the - following rules: If the byte array begins with "0x", it is assumed to - be hexadecimal; if it begins with "0", it is assumed to be octal; - otherwise it is assumed to be decimal. + If \a base is 0, the base is determined automatically using the following + rules: If the byte array begins with "0x", it is assumed to be hexadecimal + (base 16); otherwise, if it begins with "0", it is assumed to be octal (base + 8); otherwise it is assumed to be decimal. Returns 0 if the conversion fails. @@ -3875,7 +3885,8 @@ long QByteArray::toLong(bool *ok, int base) const to \c false, and success by setting *\a{ok} to \c true. \note The conversion of the number is performed in the default C locale, - irrespective of the user's locale. + regardless of the user's locale. Use QLocale to perform locale-aware + conversions between numbers and strings. \sa number() */ @@ -3885,13 +3896,14 @@ ulong QByteArray::toULong(bool *ok, int base) const } /*! - Returns the byte array converted to a \c short using base \a - base, which is 10 by default and must be between 2 and 36, or 0. + Returns the byte array converted to a \c short using base \a base, which is + ten by default. Bases 0 and 2 through 36 are supported, using letters for + digits beyond 9; A is ten, B is eleven and so on. - If \a base is 0, the base is determined automatically using the - following rules: If the byte array begins with "0x", it is assumed to - be hexadecimal; if it begins with "0", it is assumed to be octal; - otherwise it is assumed to be decimal. + If \a base is 0, the base is determined automatically using the following + rules: If the byte array begins with "0x", it is assumed to be hexadecimal; + otherwise, if it begins with "0", it is assumed to be octal; otherwise it is + assumed to be decimal. Returns 0 if the conversion fails. @@ -3899,7 +3911,8 @@ ulong QByteArray::toULong(bool *ok, int base) const to \c false, and success by setting *\a{ok} to \c true. \note The conversion of the number is performed in the default C locale, - irrespective of the user's locale. + regardless of the user's locale. Use QLocale to perform locale-aware + conversions between numbers and strings. \sa number() */ @@ -3911,12 +3924,13 @@ short QByteArray::toShort(bool *ok, int base) const /*! Returns the byte array converted to an \c {unsigned short} using base \a - base, which is 10 by default and must be between 2 and 36, or 0. + base, which is ten by default. Bases 0 and 2 through 36 are supported, using + letters for digits beyond 9; A is ten, B is eleven and so on. - If \a base is 0, the base is determined automatically using the - following rules: If the byte array begins with "0x", it is assumed to - be hexadecimal; if it begins with "0", it is assumed to be octal; - otherwise it is assumed to be decimal. + If \a base is 0, the base is determined automatically using the following + rules: If the byte array begins with "0x", it is assumed to be hexadecimal; + otherwise, if it begins with "0", it is assumed to be octal; otherwise it is + assumed to be decimal. Returns 0 if the conversion fails. @@ -3924,7 +3938,8 @@ short QByteArray::toShort(bool *ok, int base) const to \c false, and success by setting *\a{ok} to \c true. \note The conversion of the number is performed in the default C locale, - irrespective of the user's locale. + regardless of the user's locale. Use QLocale to perform locale-aware + conversions between numbers and strings. \sa number() */ @@ -3952,7 +3967,8 @@ ushort QByteArray::toUShort(bool *ok, int base) const leads to a conversion error. \note The conversion of the number is performed in the default C locale, - irrespective of the user's locale. + regardless of the user's locale. Use QLocale to perform locale-aware + conversions between numbers and strings. This function ignores leading and trailing whitespace. @@ -3987,7 +4003,8 @@ double QByteArray::toDouble(bool *ok) const leads to a conversion error. \note The conversion of the number is performed in the default C locale, - irrespective of the user's locale. + regardless of the user's locale. Use QLocale to perform locale-aware + conversions between numbers and strings. This function ignores leading and trailing whitespace. @@ -4067,16 +4084,17 @@ QByteArray QByteArray::toBase64(Base64Options options) const /*! \fn QByteArray &QByteArray::setNum(int n, int base) - Sets the byte array to the printed value of \a n in base \a base (10 - by default) and returns a reference to the byte array. The \a base can - be any value between 2 and 36. For bases other than 10, n is treated - as an unsigned integer. + Sets the byte array to the printed value of \a n in base \a base (ten by + default) and returns a reference to the byte array. Bases 2 through 36 are + supported, using letters for digits beyond 9; A is ten, B is eleven and so + on. For bases other than ten, n is treated as an unsigned integer. Example: \snippet code/src_corelib_text_qbytearray.cpp 40 - \note The format of the number is not localized; the default C locale - is used irrespective of the user's locale. + \note The format of the number is not localized; the default C locale is + used regardless of the user's locale. Use QLocale to perform locale-aware + conversions between numbers and strings. \sa number(), toInt() */ @@ -4196,8 +4214,9 @@ QByteArray &QByteArray::setNum(qulonglong n, int base) decimal point. With 'g' and 'G', \a prec is the maximum number of significant digits (trailing zeroes are omitted). - \note The format of the number is not localized; the default C locale - is used irrespective of the user's locale. + \note The format of the number is not localized; the default C locale is + used regardless of the user's locale. Use QLocale to perform locale-aware + conversions between numbers and strings. \sa toDouble() */ @@ -4241,22 +4260,24 @@ QByteArray &QByteArray::setNum(double n, char f, int prec) \a f with precision \a prec, and returns a reference to the byte array. - \note The format of the number is not localized; the default C locale - is used irrespective of the user's locale. + \note The format of the number is not localized; the default C locale is + used regardless of the user's locale. Use QLocale to perform locale-aware + conversions between numbers and strings. \sa toFloat() */ /*! - Returns a byte array containing the string equivalent of the - number \a n to base \a base (10 by default). The \a base can be - any value between 2 and 36. + Returns a byte array containing the string equivalent of the number \a n to + base \a base (ten by default). Bases 2 through 36 are supported, using + letters for digits beyond 9: A is ten, B is eleven and so on. Example: \snippet code/src_corelib_text_qbytearray.cpp 41 - \note The format of the number is not localized; the default C locale - is used irrespective of the user's locale. + \note The format of the number is not localized; the default C locale is + used regardless of the user's locale. Use QLocale to perform locale-aware + conversions between numbers and strings. \sa setNum(), toInt() */ @@ -4351,8 +4372,9 @@ QByteArray QByteArray::number(qulonglong n, int base) \snippet code/src_corelib_text_qbytearray.cpp 42 - \note The format of the number is not localized; the default C locale - is used irrespective of the user's locale. + \note The format of the number is not localized; the default C locale is + used regardless of the user's locale. Use QLocale to perform locale-aware + conversions between numbers and strings. \sa toDouble() */ |