Struct ov::SoPtr#

template<class T>
struct SoPtr#

This class instantiate object using shared library.

Template Parameters:

T – An type of object SoPtr can hold

Public Functions

SoPtr() = default#

Default constructor.

inline ~SoPtr()#

Destructor preserves unloading order of implementation object and reference to library.

inline SoPtr(const std::shared_ptr<T> &ptr, const std::shared_ptr<void> &so)#

Constructs an object with existing shared object reference and loaded pointer.

Parameters:
  • ptr – pointer to the loaded object

  • so – Existing reference to library

inline SoPtr(const std::shared_ptr<T> &ptr)#

Constructs an object with existing shared object reference.

Parameters:

ptr – pointer to the loaded object

template<class U, typename std::enable_if<std::is_base_of<T, U>::value, bool>::type = true>
inline SoPtr(const std::shared_ptr<U> &ptr)#

Constructs an object with existing shared object reference.

Parameters:

ptr – pointer to the loaded object

template<typename U>
inline SoPtr(const SoPtr<U> &that)#

The copy-like constructor, can create So Pointer that dereferenced into child type if T is derived of U.

Parameters:

that – copied SoPtr object

inline T *operator->() const noexcept#

Standard pointer operator.

Returns:

underlined interface with disabled Release method

Public Members

std::shared_ptr<T> _ptr#

Gets a smart pointer to the custom object.

std::shared_ptr<void> _so#

The shared object or dynamic loaded library.