UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SoftObjectPtr.h File Reference
#include "UObject/Object.h"
#include "Templates/Casts.h"
#include "UObject/PersistentObjectPtr.h"
#include "UObject/SoftObjectPath.h"
#include "Templates/Models.h"
#include "Concepts/EqualityComparable.h"
#include <type_traits>

Go to the source code of this file.

Classes

struct  TIsSoftObjectPointerType< T >
 
struct  FSoftObjectPtr
 
struct  TIsPODType< FSoftObjectPtr >
 
struct  TIsWeakPointerType< FSoftObjectPtr >
 
struct  TIsSoftObjectPointerType< FSoftObjectPtr >
 
struct  TSoftObjectPtr< T >
 
struct  TIsPODType< TSoftObjectPtr< T > >
 
struct  TIsWeakPointerType< TSoftObjectPtr< T > >
 
struct  TIsSoftObjectPointerType< TSoftObjectPtr< T > >
 
struct  TCallTraits< TSoftObjectPtr< T > >
 
class  TSoftClassPtr< TClass >
 
struct  TIsPODType< TSoftClassPtr< T > >
 
struct  TIsWeakPointerType< TSoftClassPtr< T > >
 
struct  TCallTraits< TSoftClassPtr< T > >
 
struct  FSoftObjectPtrFastLess
 
struct  FSoftObjectPtrLexicalLess
 

Macros

#define UE_DEPRECATE_SOFTOBJECTPTR_CONVERSIONS   1
 
#define UE_SOFTOBJECTPTR_CONVERSION_DEPRECATED(Version, Message)   UE_DEPRECATED(Version, Message)
 

Functions

template<typename T >
 TSoftObjectPtr (T *) -> TSoftObjectPtr< T >
 
template<typename LhsType , typename RhsType >
UE_FORCEINLINE_HINT bool operator== (LhsType *Lhs, const TSoftObjectPtr< RhsType > &Rhs)
 
template<typename RhsType >
UE_FORCEINLINE_HINT bool operator== (TYPE_OF_NULLPTR Lhs, const TSoftObjectPtr< RhsType > &Rhs)
 
template<typename LhsType , typename RhsType >
UE_FORCEINLINE_HINT bool operator!= (const TSoftObjectPtr< LhsType > &Lhs, const TSoftObjectPtr< RhsType > &Rhs)
 
template<typename LhsType , typename RhsType >
UE_FORCEINLINE_HINT bool operator!= (const TSoftObjectPtr< LhsType > &Lhs, RhsType *Rhs)
 
template<typename LhsType >
UE_FORCEINLINE_HINT bool operator!= (const TSoftObjectPtr< LhsType > &Lhs, TYPE_OF_NULLPTR Rhs)
 
template<typename LhsType , typename RhsType >
UE_FORCEINLINE_HINT bool operator!= (LhsType *Lhs, const TSoftObjectPtr< RhsType > &Rhs)
 
template<typename RhsType >
UE_FORCEINLINE_HINT bool operator!= (TYPE_OF_NULLPTR Lhs, const TSoftObjectPtr< RhsType > &Rhs)
 
template<class T >
UE_FORCEINLINE_HINT uint32 GetTypeHash (const TSoftObjectPtr< T > &Ptr)
 
template<class T >
FArchiveoperator<< (FArchive &Ar, TSoftObjectPtr< T > &Ptr)
 
template<class T >
TSoftObjectPtr< T > MakeSoftObjectPtr (T *Object)
 
template<class T >
TSoftObjectPtr< T > MakeSoftObjectPtr (TObjectPtr< T > Object)
 
template<class T >
TSoftClassPtr< std::remove_cv_t< T > > MakeSoftClassPtr (T *Object)
 
template<class T >
TSoftClassPtr< std::remove_cv_t< T > > MakeSoftClassPtr (TObjectPtr< T > Object)
 
template<class TClass >
UE_FORCEINLINE_HINT bool operator== (const UClass *Lhs, const TSoftClassPtr< TClass > &Rhs)
 
template<class TClass >
UE_FORCEINLINE_HINT bool operator!= (const UClass *Lhs, const TSoftClassPtr< TClass > &Rhs)
 
template<class TClass >
UE_FORCEINLINE_HINT uint32 GetTypeHash (const TSoftClassPtr< TClass > &Ptr)
 
template<class TClass >
FArchiveoperator<< (FArchive &Ar, TSoftClassPtr< TClass > &Ptr)
 

Macro Definition Documentation

◆ UE_DEPRECATE_SOFTOBJECTPTR_CONVERSIONS

#define UE_DEPRECATE_SOFTOBJECTPTR_CONVERSIONS   1

◆ UE_SOFTOBJECTPTR_CONVERSION_DEPRECATED

#define UE_SOFTOBJECTPTR_CONVERSION_DEPRECATED (   Version,
  Message 
)    UE_DEPRECATED(Version, Message)

Function Documentation

◆ GetTypeHash() [1/2]

template<class TClass >
UE_FORCEINLINE_HINT uint32 GetTypeHash ( const TSoftClassPtr< TClass > &  Ptr)

Hash function

◆ GetTypeHash() [2/2]

template<class T >
UE_FORCEINLINE_HINT uint32 GetTypeHash ( const TSoftObjectPtr< T > &  Ptr)

Hash function

◆ MakeSoftClassPtr() [1/2]

template<class T >
TSoftClassPtr< std::remove_cv_t< T > > MakeSoftClassPtr ( T *  Object)

Utility to create a TSoftObjectPtr without specifying the type

◆ MakeSoftClassPtr() [2/2]

template<class T >
TSoftClassPtr< std::remove_cv_t< T > > MakeSoftClassPtr ( TObjectPtr< T >  Object)

◆ MakeSoftObjectPtr() [1/2]

template<class T >
TSoftObjectPtr< T > MakeSoftObjectPtr ( T *  Object)

Utility to create a TSoftObjectPtr without specifying the type

◆ MakeSoftObjectPtr() [2/2]

template<class T >
TSoftObjectPtr< T > MakeSoftObjectPtr ( TObjectPtr< T >  Object)

◆ operator!=() [1/6]

◆ operator!=() [2/6]

◆ operator!=() [3/6]

◆ operator!=() [4/6]

template<class TClass >
UE_FORCEINLINE_HINT bool operator!= ( const UClass Lhs,
const TSoftClassPtr< TClass > &  Rhs 
)

◆ operator!=() [5/6]

◆ operator!=() [6/6]

◆ operator<<() [1/2]

template<class TClass >
FArchive & operator<< ( FArchive Ar,
TSoftClassPtr< TClass > &  Ptr 
)

◆ operator<<() [2/2]

template<class T >
FArchive & operator<< ( FArchive Ar,
TSoftObjectPtr< T > &  Ptr 
)

◆ operator==() [1/3]

template<class TClass >
UE_FORCEINLINE_HINT bool operator== ( const UClass Lhs,
const TSoftClassPtr< TClass > &  Rhs 
)

◆ operator==() [2/3]

UE_FORCEINLINE_HINT bool operator== ( LhsType Lhs,
const TSoftObjectPtr< RhsType > &  Rhs 
)

◆ operator==() [3/3]

template<typename RhsType >
UE_FORCEINLINE_HINT bool operator== ( TYPE_OF_NULLPTR  Lhs,
const TSoftObjectPtr< RhsType > &  Rhs 
)

◆ TSoftObjectPtr()

template<typename T >
TSoftObjectPtr ( T *  ) -> TSoftObjectPtr< T >