SDL  2.0
VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch > Class Template Reference

#include <vulkan.hpp>

+ Inheritance diagram for VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >:
+ Collaboration diagram for VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >:

Public Types

using element_type = Type
 

Public Member Functions

 UniqueHandle ()
 
 UniqueHandle (Type const &value, Deleter const &deleter=Deleter()) VULKAN_HPP_NOEXCEPT
 
 UniqueHandle (UniqueHandle const &)=delete
 
 UniqueHandle (UniqueHandle &&other) VULKAN_HPP_NOEXCEPT
 
 ~UniqueHandle () VULKAN_HPP_NOEXCEPT
 
UniqueHandleoperator= (UniqueHandle const &)=delete
 
UniqueHandleoperator= (UniqueHandle &&other) VULKAN_HPP_NOEXCEPT
 
 operator bool () const VULKAN_HPP_NOEXCEPT
 
Type const * operator-> () const VULKAN_HPP_NOEXCEPT
 
Typeoperator-> () VULKAN_HPP_NOEXCEPT
 
Type const & operator* () const VULKAN_HPP_NOEXCEPT
 
Typeoperator* () VULKAN_HPP_NOEXCEPT
 
const Typeget () const VULKAN_HPP_NOEXCEPT
 
Typeget () VULKAN_HPP_NOEXCEPT
 
void reset (Type const &value=Type()) VULKAN_HPP_NOEXCEPT
 
Type release () VULKAN_HPP_NOEXCEPT
 
void swap (UniqueHandle< Type, Dispatch > &rhs) VULKAN_HPP_NOEXCEPT
 

Private Types

using Deleter = typename UniqueHandleTraits< Type, Dispatch >::deleter
 

Private Attributes

Type m_value
 

Detailed Description

template<typename Type, typename Dispatch>
class VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >

Definition at line 1097 of file vulkan.hpp.

Member Typedef Documentation

◆ Deleter

template<typename Type , typename Dispatch >
using VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::Deleter = typename UniqueHandleTraits<Type,Dispatch>::deleter
private

Definition at line 1100 of file vulkan.hpp.

◆ element_type

template<typename Type , typename Dispatch >
using VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::element_type = Type

Definition at line 1103 of file vulkan.hpp.

Constructor & Destructor Documentation

◆ UniqueHandle() [1/4]

template<typename Type , typename Dispatch >
VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::UniqueHandle ( )
inline

Definition at line 1105 of file vulkan.hpp.

1106  : Deleter()
1107  , m_value()
1108  {}
typename UniqueHandleTraits< Type, Dispatch >::deleter Deleter
Definition: vulkan.hpp:1100

◆ UniqueHandle() [2/4]

template<typename Type , typename Dispatch >
VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::UniqueHandle ( Type const &  value,
Deleter const &  deleter = Deleter() 
)
inlineexplicit

Definition at line 1110 of file vulkan.hpp.

1111  : Deleter( deleter)
1112  , m_value( value )
1113  {}
GLsizei const GLfloat * value

◆ UniqueHandle() [3/4]

template<typename Type , typename Dispatch >
VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::UniqueHandle ( UniqueHandle< Type, Dispatch > const &  )
delete

◆ UniqueHandle() [4/4]

template<typename Type , typename Dispatch >
VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::UniqueHandle ( UniqueHandle< Type, Dispatch > &&  other)
inline

Definition at line 1117 of file vulkan.hpp.

1118  : Deleter( std::move( static_cast<Deleter&>( other ) ) )
1119  , m_value( other.release() )
1120  {}

◆ ~UniqueHandle()

template<typename Type , typename Dispatch >
VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::~UniqueHandle ( )
inline

Definition at line 1122 of file vulkan.hpp.

1123  {
1124  if ( m_value ) this->destroy( m_value );
1125  }

References VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::m_value.

Member Function Documentation

◆ get() [1/2]

template<typename Type , typename Dispatch >
const Type& VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::get ( ) const
inline

Definition at line 1161 of file vulkan.hpp.

1162  {
1163  return m_value;
1164  }

References VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::m_value.

◆ get() [2/2]

template<typename Type , typename Dispatch >
Type& VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::get ( )
inline

Definition at line 1166 of file vulkan.hpp.

1167  {
1168  return m_value;
1169  }

References VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::m_value.

◆ operator bool()

template<typename Type , typename Dispatch >
VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::operator bool ( ) const
inlineexplicit

Definition at line 1136 of file vulkan.hpp.

1137  {
1138  return m_value.operator bool();
1139  }

References VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::m_value.

◆ operator*() [1/2]

template<typename Type , typename Dispatch >
Type const& VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::operator* ( ) const
inline

Definition at line 1151 of file vulkan.hpp.

1152  {
1153  return m_value;
1154  }

References VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::m_value.

◆ operator*() [2/2]

template<typename Type , typename Dispatch >
Type& VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::operator* ( )
inline

Definition at line 1156 of file vulkan.hpp.

1157  {
1158  return m_value;
1159  }

References VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::m_value.

◆ operator->() [1/2]

template<typename Type , typename Dispatch >
Type const* VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::operator-> ( ) const
inline

Definition at line 1141 of file vulkan.hpp.

1142  {
1143  return &m_value;
1144  }

References VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::m_value.

◆ operator->() [2/2]

template<typename Type , typename Dispatch >
Type* VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::operator-> ( )
inline

Definition at line 1146 of file vulkan.hpp.

1147  {
1148  return &m_value;
1149  }

References VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::m_value.

◆ operator=() [1/2]

template<typename Type , typename Dispatch >
UniqueHandle& VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::operator= ( UniqueHandle< Type, Dispatch > &&  other)
inline

Definition at line 1129 of file vulkan.hpp.

1130  {
1131  reset( other.release() );
1132  *static_cast<Deleter*>(this) = std::move( static_cast<Deleter&>(other) );
1133  return *this;
1134  }
void reset(Type const &value=Type()) VULKAN_HPP_NOEXCEPT
Definition: vulkan.hpp:1171

References VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::reset().

◆ operator=() [2/2]

template<typename Type , typename Dispatch >
UniqueHandle& VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::operator= ( UniqueHandle< Type, Dispatch > const &  )
delete

◆ release()

template<typename Type , typename Dispatch >
Type VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::release ( )
inline

Definition at line 1180 of file vulkan.hpp.

1181  {
1182  Type value = m_value;
1183  m_value = nullptr;
1184  return value;
1185  }

References VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::m_value.

◆ reset()

template<typename Type , typename Dispatch >
void VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::reset ( Type const &  value = Type())
inline

Definition at line 1171 of file vulkan.hpp.

1172  {
1173  if ( m_value != value )
1174  {
1175  if ( m_value ) this->destroy( m_value );
1176  m_value = value;
1177  }
1178  }

References VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::m_value.

Referenced by VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::operator=().

◆ swap()

template<typename Type , typename Dispatch >
void VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::swap ( UniqueHandle< Type, Dispatch > &  rhs)
inline

Definition at line 1187 of file vulkan.hpp.

1188  {
1189  std::swap(m_value, rhs.m_value);
1190  std::swap(static_cast<Deleter&>(*this), static_cast<Deleter&>(rhs));
1191  }
VULKAN_HPP_INLINE void swap(UniqueHandle< Type, Dispatch > &lhs, UniqueHandle< Type, Dispatch > &rhs) VULKAN_HPP_NOEXCEPT
Definition: vulkan.hpp:1206

References VULKAN_HPP_NAMESPACE::UniqueHandle< Type, Dispatch >::m_value, and VULKAN_HPP_NAMESPACE::swap().

Field Documentation

◆ m_value


The documentation for this class was generated from the following file: