Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qsharedpointer_impl.h File Reference

(1a3169727060c2cec554081a038c240364153a04)

#include <new>
#include <QtCore/qatomic.h>
#include <QtCore/qhashfunctions.h>
#include <QtCore/qmetatype.h>
#include <QtCore/qxptype_traits.h>
#include <memory>
+ Include dependency graph for qsharedpointer_impl.h:

Go to the source code of this file.

Classes

struct  QtSharedPointer::NormalDeleter
 
struct  QtSharedPointer::RemovePointer< T * >
 
struct  QtSharedPointer::RemovePointer< QSharedPointer< T > >
 
struct  QtSharedPointer::RemovePointer< QWeakPointer< T > >
 
struct  QtSharedPointer::ExternalRefCountData
 
struct  QtSharedPointer::CustomDeleter< T, Deleter >
 
struct  QtSharedPointer::CustomDeleter< T, NormalDeleter >
 
struct  QtSharedPointer::ExternalRefCountWithCustomDeleter< T, Deleter >
 
struct  QtSharedPointer::ExternalRefCountWithContiguousData< T >
 
class  QSharedPointer< T >
 \inmodule QtCore More...
 
class  QWeakPointer< T >
 \inmodule QtCore More...
 
struct  QtPrivate::EnableInternalData
 
struct  QtPrivate::EnableInternalDataWrap< T >
 
class  QEnableSharedFromThis< T >
 \inmodule QtCore More...
 

Namespaces

namespace  QtPrivate
 
namespace  QtSharedPointer
 

Functions

template<class T>
qobject_cast (const QObject *object)
 
template<class X, class T>
QSharedPointer< XqSharedPointerCast (const QSharedPointer< T > &ptr)
 
template<class X, class T>
QSharedPointer< XqSharedPointerCast (QSharedPointer< T > &&ptr)
 
template<class X, class T>
QSharedPointer< XqSharedPointerDynamicCast (const QSharedPointer< T > &ptr)
 
template<class X, class T>
QSharedPointer< XqSharedPointerDynamicCast (QSharedPointer< T > &&ptr)
 
template<class X, class T>
QSharedPointer< XqSharedPointerConstCast (const QSharedPointer< T > &ptr)
 
template<class X, class T>
QSharedPointer< XqSharedPointerConstCast (QSharedPointer< T > &&ptr)
 
template<class X, class T>
QSharedPointer< XqSharedPointerObjectCast (const QSharedPointer< T > &ptr)
 
template<class X, class T>
QSharedPointer< XqSharedPointerObjectCast (QSharedPointer< T > &&ptr)
 
template<class X, class Y>
QSharedPointer< XQtSharedPointer::copyAndSetPointer (X *ptr, const QSharedPointer< Y > &src)
 
template<class X, class Y>
QSharedPointer< XQtSharedPointer::movePointer (X *ptr, QSharedPointer< Y > &&src)
 
Q_CORE_EXPORT void QtSharedPointer::internalSafetyCheckAdd (const void *, const volatile void *)
 
Q_CORE_EXPORT void QtSharedPointer::internalSafetyCheckRemove (const void *)
 
template<class T, typename Klass, typename RetVal>
void QtSharedPointer::executeDeleter (T *t, RetVal(Klass::*memberDeleter)())
 
template<class T, typename Deleter>
void QtSharedPointer::executeDeleter (T *t, Deleter d)
 
Q_CORE_EXPORT QWeakPointer< QObjectQtSharedPointer::weakPointerFromVariant_internal (const QVariant &variant)
 
Q_CORE_EXPORT QSharedPointer< QObjectQtSharedPointer::sharedPointerFromVariant_internal (const QVariant &variant)
 
template<class T, class X>
Q_INLINE_TEMPLATE QSharedPointer< T >::difference_type operator- (const QSharedPointer< T > &ptr1, const QSharedPointer< X > &ptr2)
 
template<class T, class X>
Q_INLINE_TEMPLATE QSharedPointer< T >::difference_type operator- (const QSharedPointer< T > &ptr1, X *ptr2)
 
template<class T, class X>
Q_INLINE_TEMPLATE QSharedPointer< X >::difference_type operator- (T *ptr1, const QSharedPointer< X > &ptr2)
 
template<class T>
Q_INLINE_TEMPLATE size_t qHash (const QSharedPointer< T > &ptr, size_t seed=0)
 \qhashold{QSharedPointer}
 
template<class T>
void swap (QSharedPointer< T > &p1, QSharedPointer< T > &p2) noexcept
 
template<class T>
void swap (QWeakPointer< T > &p1, QWeakPointer< T > &p2) noexcept
 
template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< XQtSharedPointer::copyAndSetPointer (X *ptr, const QSharedPointer< T > &src)
 
template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< XQtSharedPointer::movePointer (X *ptr, QSharedPointer< T > &&src)
 
template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< XqSharedPointerCast (const QSharedPointer< T > &src)
 
template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< XqSharedPointerCast (QSharedPointer< T > &&src)
 
template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< XqSharedPointerCast (const QWeakPointer< T > &src)
 
template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< XqSharedPointerDynamicCast (const QSharedPointer< T > &src)
 
template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< XqSharedPointerDynamicCast (QSharedPointer< T > &&src)
 
template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< XqSharedPointerDynamicCast (const QWeakPointer< T > &src)
 
template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< XqSharedPointerConstCast (const QSharedPointer< T > &src)
 
template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< XqSharedPointerConstCast (QSharedPointer< T > &&src)
 
template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< XqSharedPointerConstCast (const QWeakPointer< T > &src)
 
template<class X, class T>
Q_INLINE_TEMPLATE QWeakPointer< XqWeakPointerCast (const QSharedPointer< T > &src)
 
template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< XqSharedPointerObjectCast (const QSharedPointer< T > &src)
 
template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< XqSharedPointerObjectCast (QSharedPointer< T > &&src)
 
template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< XqSharedPointerObjectCast (const QWeakPointer< T > &src)
 
template<class X, class T>
QSharedPointer< typename QtSharedPointer::RemovePointer< X >::Typeqobject_cast (const QSharedPointer< T > &src)
 
template<class X, class T>
QSharedPointer< typename QtSharedPointer::RemovePointer< X >::Typeqobject_cast (QSharedPointer< T > &&src)
 
template<class X, class T>
QSharedPointer< typename QtSharedPointer::RemovePointer< X >::Typeqobject_cast (const QWeakPointer< T > &src)
 
template<typename T>
QWeakPointer< typename std::enable_if< QtPrivate::IsPointerToTypeDerivedFromQObject< T * >::Value, T >::typeqWeakPointerFromVariant (const QVariant &variant)
 
template<typename T>
QSharedPointer< typename std::enable_if< QtPrivate::IsPointerToTypeDerivedFromQObject< T * >::Value, T >::typeqSharedPointerFromVariant (const QVariant &variant)
 
template<typename X, class T>
std::shared_ptr< Xqobject_pointer_cast (const std::shared_ptr< T > &src)
 
template<typename X, class T>
std::shared_ptr< Xqobject_pointer_cast (std::shared_ptr< T > &&src)
 
template<typename X, class T>
std::shared_ptr< XqSharedPointerObjectCast (const std::shared_ptr< T > &src)
 
template<typename X, class T>
std::shared_ptr< XqSharedPointerObjectCast (std::shared_ptr< T > &&src)
 
template<typename T>
 Q_DECLARE_TYPEINFO_BODY (QWeakPointer< T >, Q_RELOCATABLE_TYPE)
 
template<typename T>
 Q_DECLARE_TYPEINFO_BODY (QSharedPointer< T >, Q_RELOCATABLE_TYPE)
 

Function Documentation

◆ operator-() [1/3]

template<class T, class X>
Q_INLINE_TEMPLATE QSharedPointer< T >::difference_type operator- ( const QSharedPointer< T > & ptr1,
const QSharedPointer< X > & ptr2 )

Definition at line 837 of file qsharedpointer_impl.h.

◆ operator-() [2/3]

template<class T, class X>
Q_INLINE_TEMPLATE QSharedPointer< T >::difference_type operator- ( const QSharedPointer< T > & ptr1,
X * ptr2 )

Definition at line 842 of file qsharedpointer_impl.h.

◆ operator-() [3/3]

template<class T, class X>
Q_INLINE_TEMPLATE QSharedPointer< X >::difference_type operator- ( T * ptr1,
const QSharedPointer< X > & ptr2 )

Definition at line 847 of file qsharedpointer_impl.h.

◆ Q_DECLARE_TYPEINFO_BODY() [1/2]

template<typename T>
Q_DECLARE_TYPEINFO_BODY ( QSharedPointer< T > ,
Q_RELOCATABLE_TYPE  )

◆ Q_DECLARE_TYPEINFO_BODY() [2/2]

template<typename T>
Q_DECLARE_TYPEINFO_BODY ( QWeakPointer< T > ,
Q_RELOCATABLE_TYPE  )

◆ qHash()

template<class T>
Q_INLINE_TEMPLATE size_t qHash ( const QSharedPointer< T > & key,
size_t seed = 0 )

\qhashold{QSharedPointer}

Since
5.0

Definition at line 856 of file qsharedpointer_impl.h.

◆ qobject_cast() [1/4]

template<class T>
T qobject_cast ( const QObject * object)
related

Definition at line 432 of file qobject.h.

◆ qobject_cast() [2/4]

template<class X, class T>
QSharedPointer< typename QtSharedPointer::RemovePointer< X >::Type > qobject_cast ( const QSharedPointer< T > & src)
inline

Definition at line 988 of file qsharedpointer_impl.h.

◆ qobject_cast() [3/4]

template<class X, class T>
QSharedPointer< typename QtSharedPointer::RemovePointer< X >::Type > qobject_cast ( const QWeakPointer< T > & src)
inline

Definition at line 1000 of file qsharedpointer_impl.h.

◆ qobject_cast() [4/4]

template<class X, class T>
QSharedPointer< typename QtSharedPointer::RemovePointer< X >::Type > qobject_cast ( QSharedPointer< T > && src)
inline

Definition at line 994 of file qsharedpointer_impl.h.

◆ qobject_pointer_cast() [1/2]

template<typename X, class T>
std::shared_ptr< X > qobject_pointer_cast ( const std::shared_ptr< T > & src)
related

Definition at line 1023 of file qsharedpointer_impl.h.

◆ qobject_pointer_cast() [2/2]

template<typename X, class T>
std::shared_ptr< X > qobject_pointer_cast ( std::shared_ptr< T > && src)
related

Definition at line 1032 of file qsharedpointer_impl.h.

◆ qSharedPointerCast() [1/5]

template<class X, class T>
QSharedPointer< X > qSharedPointerCast ( const QSharedPointer< T > & ptr)
related

Definition at line 899 of file qsharedpointer_impl.h.

◆ qSharedPointerCast() [2/5]

template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< X > qSharedPointerCast ( const QSharedPointer< T > & src)
related

Definition at line 899 of file qsharedpointer_impl.h.

◆ qSharedPointerCast() [3/5]

template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< X > qSharedPointerCast ( const QWeakPointer< T > & src)
related

Definition at line 911 of file qsharedpointer_impl.h.

◆ qSharedPointerCast() [4/5]

template<class X, class T>
QSharedPointer< X > qSharedPointerCast ( QSharedPointer< T > && ptr)

Definition at line 905 of file qsharedpointer_impl.h.

◆ qSharedPointerCast() [5/5]

template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< X > qSharedPointerCast ( QSharedPointer< T > && src)

Definition at line 905 of file qsharedpointer_impl.h.

◆ qSharedPointerConstCast() [1/5]

template<class X, class T>
QSharedPointer< X > qSharedPointerConstCast ( const QSharedPointer< T > & ptr)
related

Definition at line 939 of file qsharedpointer_impl.h.

◆ qSharedPointerConstCast() [2/5]

template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< X > qSharedPointerConstCast ( const QSharedPointer< T > & src)
related

Definition at line 939 of file qsharedpointer_impl.h.

◆ qSharedPointerConstCast() [3/5]

template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< X > qSharedPointerConstCast ( const QWeakPointer< T > & src)
related

Definition at line 951 of file qsharedpointer_impl.h.

◆ qSharedPointerConstCast() [4/5]

template<class X, class T>
QSharedPointer< X > qSharedPointerConstCast ( QSharedPointer< T > && ptr)

Definition at line 945 of file qsharedpointer_impl.h.

◆ qSharedPointerConstCast() [5/5]

template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< X > qSharedPointerConstCast ( QSharedPointer< T > && src)

Definition at line 945 of file qsharedpointer_impl.h.

◆ qSharedPointerDynamicCast() [1/5]

template<class X, class T>
QSharedPointer< X > qSharedPointerDynamicCast ( const QSharedPointer< T > & ptr)
related

Definition at line 917 of file qsharedpointer_impl.h.

◆ qSharedPointerDynamicCast() [2/5]

template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< X > qSharedPointerDynamicCast ( const QSharedPointer< T > & src)
related

Definition at line 917 of file qsharedpointer_impl.h.

◆ qSharedPointerDynamicCast() [3/5]

template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< X > qSharedPointerDynamicCast ( const QWeakPointer< T > & src)
related

Definition at line 933 of file qsharedpointer_impl.h.

◆ qSharedPointerDynamicCast() [4/5]

template<class X, class T>
QSharedPointer< X > qSharedPointerDynamicCast ( QSharedPointer< T > && ptr)

Definition at line 925 of file qsharedpointer_impl.h.

◆ qSharedPointerDynamicCast() [5/5]

template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< X > qSharedPointerDynamicCast ( QSharedPointer< T > && src)

Definition at line 925 of file qsharedpointer_impl.h.

◆ qSharedPointerFromVariant()

template<typename T>
QSharedPointer< typename std::enable_if< QtPrivate::IsPointerToTypeDerivedFromQObject< T * >::Value, T >::type > qSharedPointerFromVariant ( const QVariant & variant)

Definition at line 1015 of file qsharedpointer_impl.h.

◆ qSharedPointerObjectCast() [1/7]

template<class X, class T>
QSharedPointer< X > qSharedPointerObjectCast ( const QSharedPointer< T > & ptr)
related

Definition at line 965 of file qsharedpointer_impl.h.

◆ qSharedPointerObjectCast() [2/7]

template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< X > qSharedPointerObjectCast ( const QSharedPointer< T > & src)
related

Definition at line 965 of file qsharedpointer_impl.h.

◆ qSharedPointerObjectCast() [3/7]

template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< X > qSharedPointerObjectCast ( const QWeakPointer< T > & src)
related

Definition at line 981 of file qsharedpointer_impl.h.

◆ qSharedPointerObjectCast() [4/7]

template<typename X, class T>
std::shared_ptr< X > qSharedPointerObjectCast ( const std::shared_ptr< T > & src)
related

Definition at line 1047 of file qsharedpointer_impl.h.

◆ qSharedPointerObjectCast() [5/7]

template<class X, class T>
QSharedPointer< X > qSharedPointerObjectCast ( QSharedPointer< T > && ptr)

Definition at line 973 of file qsharedpointer_impl.h.

◆ qSharedPointerObjectCast() [6/7]

template<class X, class T>
Q_INLINE_TEMPLATE QSharedPointer< X > qSharedPointerObjectCast ( QSharedPointer< T > && src)

Definition at line 973 of file qsharedpointer_impl.h.

◆ qSharedPointerObjectCast() [7/7]

template<typename X, class T>
std::shared_ptr< X > qSharedPointerObjectCast ( std::shared_ptr< T > && src)
related

Definition at line 1053 of file qsharedpointer_impl.h.

◆ qWeakPointerCast()

template<class X, class T>
Q_INLINE_TEMPLATE QWeakPointer< X > qWeakPointerCast ( const QSharedPointer< T > & src)

Definition at line 958 of file qsharedpointer_impl.h.

◆ qWeakPointerFromVariant()

template<typename T>
QWeakPointer< typename std::enable_if< QtPrivate::IsPointerToTypeDerivedFromQObject< T * >::Value, T >::type > qWeakPointerFromVariant ( const QVariant & variant)

TODO - QTBUG-88102: make this use toStrongRef() (once support for

storing non-managed QObjects in QWeakPointer is removed)

Definition at line 1009 of file qsharedpointer_impl.h.

◆ swap() [1/2]

template<class T>
void swap ( QSharedPointer< T > & p1,
QSharedPointer< T > & p2 )
inlinenoexcept

Definition at line 869 of file qsharedpointer_impl.h.

◆ swap() [2/2]

template<class T>
void swap ( QWeakPointer< T > & p1,
QWeakPointer< T > & p2 )
inlinenoexcept

Definition at line 873 of file qsharedpointer_impl.h.