Assume that <variant> header is always present

This header is a C++17 feature that is already used unconditionally
in qtypeinfo.h.

Change-Id: I26330d298e95102f3e94c0c69fc95c1025666eb4
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
This commit is contained in:
Ievgenii Meshcheriakov 2021-09-30 14:40:33 +02:00
parent e0b87edd73
commit 49d94bbb41
2 changed files with 0 additions and 13 deletions

View File

@ -57,12 +57,7 @@
#endif #endif
#include <memory> #include <memory>
#include <type_traits> #include <type_traits>
#if __has_include(<variant>)
#include <variant> #include <variant>
#elif defined(Q_CLANG_QDOC)
namespace std { template<typename...> struct variant; }
#endif
QT_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
@ -402,7 +397,6 @@ class Q_CORE_EXPORT QVariant
return QVariant(QMetaType::fromType<T>(), std::addressof(value)); return QVariant(QMetaType::fromType<T>(), std::addressof(value));
} }
#if __has_include(<variant>) || defined(Q_CLANG_QDOC)
template<typename... Types> template<typename... Types>
static inline QVariant fromStdVariant(const std::variant<Types...> &value) static inline QVariant fromStdVariant(const std::variant<Types...> &value)
{ {
@ -410,7 +404,6 @@ class Q_CORE_EXPORT QVariant
return QVariant(); return QVariant();
return std::visit([](const auto &arg) { return fromValue(arg); }, value); return std::visit([](const auto &arg) { return fromValue(arg); }, value);
} }
#endif
template<typename T> template<typename T>
bool canConvert() const bool canConvert() const
@ -580,13 +573,11 @@ inline QVariant QVariant::fromValue(const QVariant &value)
return value; return value;
} }
#if __has_include(<variant>)
template<> template<>
inline QVariant QVariant::fromValue(const std::monostate &) inline QVariant QVariant::fromValue(const std::monostate &)
{ {
return QVariant(); return QVariant();
} }
#endif
inline bool QVariant::isValid() const inline bool QVariant::isValid() const
{ {

View File

@ -48,9 +48,7 @@
#include <limits.h> #include <limits.h>
#include <float.h> #include <float.h>
#include <cmath> #include <cmath>
#if __has_include(<variant>)
#include <variant> #include <variant>
#endif
#include <QRegularExpression> #include <QRegularExpression>
#include <QDir> #include <QDir>
#include <QBuffer> #include <QBuffer>
@ -4882,7 +4880,6 @@ void tst_QVariant::shouldDeleteVariantDataWorksForAssociative()
void tst_QVariant::fromStdVariant() void tst_QVariant::fromStdVariant()
{ {
#if __has_include(<variant>)
{ {
typedef std::variant<int, bool> intorbool_t; typedef std::variant<int, bool> intorbool_t;
intorbool_t stdvar = 5; intorbool_t stdvar = 5;
@ -4913,7 +4910,6 @@ void tst_QVariant::fromStdVariant()
QCOMPARE(qvar.type(), QVariant::Char); QCOMPARE(qvar.type(), QVariant::Char);
QCOMPARE(qvar.value<QChar>(), std::get<QChar>(stdvar)); QCOMPARE(qvar.value<QChar>(), std::get<QChar>(stdvar));
} }
#endif
} }
void tst_QVariant::qt4UuidDataStream() void tst_QVariant::qt4UuidDataStream()