8#ifndef ARP_USE_ARP_SYSTEM_CORE
10#include "Arp/Base/Core/PimplPtr.hxx"
21template<
class T,
bool Copyable = false>
26 using ImplPtr = std::unique_ptr<Impl>;
30 template <
class ...Args>
31 ARP_CXX_SYMBOL_EXPORT
explicit PimplPtr(Args&& ... args);
47 ARP_CXX_SYMBOL_EXPORT
const Impl*
operator->(
void)
const;
49 ARP_CXX_SYMBOL_EXPORT Impl&
operator*(
void);
51 ARP_CXX_SYMBOL_EXPORT
const Impl&
operator*(
void)
const;
53 ARP_CXX_SYMBOL_EXPORT
explicit operator bool(
void)
const noexcept;
60class PimplPtr<T, true>
64 using ImplPtr = std::unique_ptr<Impl>;
68 template <
class ...Args>
69 ARP_CXX_SYMBOL_EXPORT
explicit PimplPtr(Args&& ... args);
85 ARP_CXX_SYMBOL_EXPORT
const Impl*
operator->(
void)
const;
87 ARP_CXX_SYMBOL_EXPORT Impl&
operator*(
void);
89 ARP_CXX_SYMBOL_EXPORT
const Impl&
operator*(
void)
const;
91 ARP_CXX_SYMBOL_EXPORT
explicit operator bool(
void)
const noexcept;
~PimplPtr(void)
Default destructor.
Impl & operator*(void)
Indirect operator to access pointee.
Definition: PimplPtr.inl:51
PimplPtr(Args &&... args)
Variadic constructor.
Definition: PimplPtr.inl:18
Impl * operator->(void)
Arrow operator to access pointee.
Definition: PimplPtr.inl:37
Root namespace for the PLCnext API