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 Member Functions

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

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 382 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 385 of file vulkan.hpp.

Constructor & Destructor Documentation

◆ UniqueHandle() [1/3]

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

Definition at line 387 of file vulkan.hpp.

388 : Deleter( deleter)
389 , m_value( value )
390 {}
GLsizei const GLfloat * value
typename UniqueHandleTraits< Type, Dispatch >::deleter Deleter
Definition: vulkan.hpp:385

◆ UniqueHandle() [2/3]

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

◆ UniqueHandle() [3/3]

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

Definition at line 394 of file vulkan.hpp.

395 : Deleter( std::move( static_cast<Deleter&>( other ) ) )
396 , m_value( other.release() )
397 {}

◆ ~UniqueHandle()

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

Definition at line 399 of file vulkan.hpp.

400 {
401 if ( m_value ) this->destroy( m_value );
402 }

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

Member Function Documentation

◆ get() [1/2]

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

Definition at line 443 of file vulkan.hpp.

444 {
445 return m_value;
446 }

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

◆ get() [2/2]

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

Definition at line 438 of file vulkan.hpp.

439 {
440 return m_value;
441 }

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 413 of file vulkan.hpp.

414 {
415 return m_value.operator bool();
416 }

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

◆ operator*() [1/2]

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

Definition at line 433 of file vulkan.hpp.

434 {
435 return m_value;
436 }

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

◆ operator*() [2/2]

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

Definition at line 428 of file vulkan.hpp.

429 {
430 return m_value;
431 }

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

◆ operator->() [1/2]

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

Definition at line 423 of file vulkan.hpp.

424 {
425 return &m_value;
426 }

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

◆ operator->() [2/2]

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

Definition at line 418 of file vulkan.hpp.

419 {
420 return &m_value;
421 }

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 406 of file vulkan.hpp.

407 {
408 reset( other.release() );
409 *static_cast<Deleter*>(this) = std::move( static_cast<Deleter&>(other) );
410 return *this;
411 }
void reset(Type const &value=Type())
Definition: vulkan.hpp:448

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 457 of file vulkan.hpp.

458 {
460 m_value = nullptr;
461 return value;
462 }

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 448 of file vulkan.hpp.

449 {
450 if ( m_value != value )
451 {
452 if ( m_value ) this->destroy( m_value );
453 m_value = value;
454 }
455 }

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 464 of file vulkan.hpp.

465 {
466 std::swap(m_value, rhs.m_value);
467 std::swap(static_cast<Deleter&>(*this), static_cast<Deleter&>(rhs));
468 }
VULKAN_HPP_INLINE void swap(UniqueHandle< Type, Dispatch > &lhs, UniqueHandle< Type, Dispatch > &rhs)
Definition: vulkan.hpp:475

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

Referenced by VULKAN_HPP_NAMESPACE::swap().

Field Documentation

◆ m_value


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