diff options
author | Marc Mutz <marc.mutz@qt.io> | 2022-02-21 16:08:27 +0100 |
---|---|---|
committer | Marc Mutz <marc.mutz@qt.io> | 2022-02-22 12:20:15 +0000 |
commit | 66203133e3d68f91a63a8257d736596dceab4e01 (patch) | |
tree | cce46fd494632c551df8bdc969de420e6377664e /src | |
parent | 9ddc02024644e0c6801f71b0f9844918de288a7b (diff) |
QStringConverter: make explicit what should never have been implicit
As a drive-by, remove the GCC 7 constexpr work-around.
[ChangeLog][Potentially Source-Incompatible Changes]
All QStringEncoder/Decoder constructors are now explicit.
Change-Id: I0972e2736115993d44a48e73dbf4b08a1c94bef2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/text/qstringconverter.h | 25 | ||||
-rw-r--r-- | src/corelib/text/qstringconverter_base.h | 6 |
2 files changed, 11 insertions, 20 deletions
diff --git a/src/corelib/text/qstringconverter.h b/src/corelib/text/qstringconverter.h index 4d2138f143..dcc2b4a433 100644 --- a/src/corelib/text/qstringconverter.h +++ b/src/corelib/text/qstringconverter.h @@ -55,27 +55,20 @@ QT_BEGIN_NAMESPACE -// work around a compiler bug in GCC 7 -#if (defined(Q_CC_GNU) && __GNUC__ == 7) || defined(Q_QDOC) -#define QSTRINGCONVERTER_CONSTEXPR -#else -#define QSTRINGCONVERTER_CONSTEXPR constexpr -#endif - class QStringEncoder : public QStringConverter { protected: - QSTRINGCONVERTER_CONSTEXPR QStringEncoder(const Interface *i) + constexpr explicit QStringEncoder(const Interface *i) : QStringConverter(i) {} public: - QSTRINGCONVERTER_CONSTEXPR QStringEncoder() + constexpr QStringEncoder() : QStringConverter() {} - QSTRINGCONVERTER_CONSTEXPR QStringEncoder(Encoding encoding, Flags flags = Flag::Default) + constexpr explicit QStringEncoder(Encoding encoding, Flags flags = Flag::Default) : QStringConverter(encoding, flags) {} - QStringEncoder(const char *name, Flags flags = Flag::Default) + explicit QStringEncoder(const char *name, Flags flags = Flag::Default) : QStringConverter(name, flags) {} @@ -123,17 +116,17 @@ private: class QStringDecoder : public QStringConverter { protected: - QSTRINGCONVERTER_CONSTEXPR QStringDecoder(const Interface *i) + constexpr explicit QStringDecoder(const Interface *i) : QStringConverter(i) {} public: - QSTRINGCONVERTER_CONSTEXPR QStringDecoder(Encoding encoding, Flags flags = Flag::Default) + constexpr explicit QStringDecoder(Encoding encoding, Flags flags = Flag::Default) : QStringConverter(encoding, flags) {} - QSTRINGCONVERTER_CONSTEXPR QStringDecoder() + constexpr QStringDecoder() : QStringConverter() {} - QStringDecoder(const char *name, Flags f = Flag::Default) + explicit QStringDecoder(const char *name, Flags f = Flag::Default) : QStringConverter(name, f) {} @@ -231,6 +224,4 @@ QByteArray &operator+=(QByteArray &a, const QStringEncoder::DecodedData<T> &b) QT_END_NAMESPACE -#undef QSTRINGCONVERTER_CONSTEXPR - #endif diff --git a/src/corelib/text/qstringconverter_base.h b/src/corelib/text/qstringconverter_base.h index dd84cf8744..23a011d297 100644 --- a/src/corelib/text/qstringconverter_base.h +++ b/src/corelib/text/qstringconverter_base.h @@ -158,13 +158,13 @@ protected: constexpr QStringConverter() : iface(nullptr) {} - constexpr QStringConverter(Encoding encoding, Flags f) + constexpr explicit QStringConverter(Encoding encoding, Flags f) : iface(&encodingInterfaces[int(encoding)]), state(f) {} - constexpr QStringConverter(const Interface *i) + constexpr explicit QStringConverter(const Interface *i) : iface(i) {} - Q_CORE_EXPORT QStringConverter(const char *name, Flags f); + Q_CORE_EXPORT explicit QStringConverter(const char *name, Flags f); public: |