sherpa-onnx C API 1.0
Public C API and C++ wrapper for sherpa-onnx
Loading...
Searching...
No Matches
sherpa_onnx::cxx::MoveOnly< Derived, T > Class Template Reference

Base class for move-only RAII wrappers around C handles. More...

#include <cxx-api.h>

Public Member Functions

 MoveOnly ()=default
 Construct an empty wrapper.
 
 MoveOnly (const T *p)
 Construct a wrapper from a raw C handle.
 
 ~MoveOnly ()
 Destroy the wrapped handle if present.
 
 MoveOnly (const MoveOnly &)=delete
 
MoveOnlyoperator= (const MoveOnly &)=delete
 
 MoveOnly (MoveOnly &&other)
 
MoveOnlyoperator= (MoveOnly &&other)
 
const T * Get () const
 Return the wrapped raw pointer without transferring ownership.
 
const T * Release ()
 Release ownership of the wrapped raw pointer.
 

Protected Attributes

const T * p_ = nullptr
 

Detailed Description

template<typename Derived, typename T>
class sherpa_onnx::cxx::MoveOnly< Derived, T >

Derived classes implement Destroy(const T *) const and inherit automatic destruction, Get(), and Release().

Definition at line 290 of file cxx-api.h.

Constructor & Destructor Documentation

◆ MoveOnly() [1/4]

template<typename Derived , typename T >
sherpa_onnx::cxx::MoveOnly< Derived, T >::MoveOnly ( )
default

◆ MoveOnly() [2/4]

template<typename Derived , typename T >
sherpa_onnx::cxx::MoveOnly< Derived, T >::MoveOnly ( const T *  p)
inlineexplicit

Definition at line 295 of file cxx-api.h.

◆ ~MoveOnly()

template<typename Derived , typename T >
sherpa_onnx::cxx::MoveOnly< Derived, T >::~MoveOnly ( )
inline

Definition at line 298 of file cxx-api.h.

◆ MoveOnly() [3/4]

template<typename Derived , typename T >
sherpa_onnx::cxx::MoveOnly< Derived, T >::MoveOnly ( const MoveOnly< Derived, T > &  )
delete

◆ MoveOnly() [4/4]

template<typename Derived , typename T >
sherpa_onnx::cxx::MoveOnly< Derived, T >::MoveOnly ( MoveOnly< Derived, T > &&  other)
inline

Definition at line 304 of file cxx-api.h.

Member Function Documentation

◆ Get()

template<typename Derived , typename T >
const T * sherpa_onnx::cxx::MoveOnly< Derived, T >::Get ( ) const
inline

Definition at line 319 of file cxx-api.h.

◆ operator=() [1/2]

template<typename Derived , typename T >
MoveOnly & sherpa_onnx::cxx::MoveOnly< Derived, T >::operator= ( const MoveOnly< Derived, T > &  )
delete

◆ operator=() [2/2]

template<typename Derived , typename T >
MoveOnly & sherpa_onnx::cxx::MoveOnly< Derived, T >::operator= ( MoveOnly< Derived, T > &&  other)
inline

Definition at line 306 of file cxx-api.h.

◆ Release()

template<typename Derived , typename T >
const T * sherpa_onnx::cxx::MoveOnly< Derived, T >::Release ( )
inline

Definition at line 322 of file cxx-api.h.

Member Data Documentation

◆ p_

template<typename Derived , typename T >
const T* sherpa_onnx::cxx::MoveOnly< Derived, T >::p_ = nullptr
protected

Definition at line 340 of file cxx-api.h.


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