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:
parent
e0b87edd73
commit
49d94bbb41
@ -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
|
||||||
{
|
{
|
||||||
|
@ -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()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user