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>bb10
parent
9ddc020246
commit
66203133e3
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Reference in New Issue