summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/tools')
-rw-r--r--src/corelib/tools/qscopedpointer.h12
-rw-r--r--src/corelib/tools/qsharedpointer_impl.h6
2 files changed, 4 insertions, 14 deletions
diff --git a/src/corelib/tools/qscopedpointer.h b/src/corelib/tools/qscopedpointer.h
index af0c0ed336..4acec9c1f6 100644
--- a/src/corelib/tools/qscopedpointer.h
+++ b/src/corelib/tools/qscopedpointer.h
@@ -95,7 +95,6 @@ typedef QScopedPointerObjectDeleteLater<QObject> QScopedPointerDeleteLater;
template <typename T, typename Cleanup = QScopedPointerDeleter<T> >
class QScopedPointer
{
- typedef T *QScopedPointer:: *RestrictedBool;
public:
explicit QScopedPointer(T *p = nullptr) noexcept : d(p)
{
@@ -123,17 +122,10 @@ public:
return !d;
}
-#if defined(Q_QDOC)
- inline operator bool() const
+ explicit operator bool() const
{
- return isNull() ? nullptr : &QScopedPointer::d;
+ return !isNull();
}
-#else
- operator RestrictedBool() const noexcept
- {
- return isNull() ? nullptr : &QScopedPointer::d;
- }
-#endif
T *data() const noexcept
{
diff --git a/src/corelib/tools/qsharedpointer_impl.h b/src/corelib/tools/qsharedpointer_impl.h
index 235cbe144b..35058a1c6e 100644
--- a/src/corelib/tools/qsharedpointer_impl.h
+++ b/src/corelib/tools/qsharedpointer_impl.h
@@ -283,7 +283,6 @@ namespace QtSharedPointer {
template <class T> class QSharedPointer
{
- typedef T *QSharedPointer:: *RestrictedBool;
typedef QtSharedPointer::ExternalRefCountData Data;
template <typename X>
using IfCompatible = typename std::enable_if<std::is_convertible<X*, T*>::value, bool>::type;
@@ -301,7 +300,7 @@ public:
T *data() const noexcept { return value; }
T *get() const noexcept { return value; }
bool isNull() const noexcept { return !data(); }
- operator RestrictedBool() const noexcept { return isNull() ? nullptr : &QSharedPointer::value; }
+ explicit operator bool() const noexcept { return !isNull(); }
bool operator !() const noexcept { return isNull(); }
T &operator*() const { return *data(); }
T *operator->() const noexcept { return data(); }
@@ -539,7 +538,6 @@ public:
template <class T>
class QWeakPointer
{
- typedef T *QWeakPointer:: *RestrictedBool;
typedef QtSharedPointer::ExternalRefCountData Data;
template <typename X>
using IfCompatible = typename std::enable_if<std::is_convertible<X*, T*>::value, bool>::type;
@@ -554,7 +552,7 @@ public:
typedef qptrdiff difference_type;
bool isNull() const noexcept { return d == nullptr || d->strongref.loadRelaxed() == 0 || value == nullptr; }
- operator RestrictedBool() const noexcept { return isNull() ? nullptr : &QWeakPointer::value; }
+ explicit operator bool() const noexcept { return !isNull(); }
bool operator !() const noexcept { return isNull(); }
#if QT_DEPRECATED_SINCE(5, 14)