14 template<
class T,
bool Copyable = false>
19 using ImplPtr = std::unique_ptr<Impl>;
23 template <
class ...Args>
24 ARP_CXX_SYMBOL_EXPORT
explicit PimplPtr(Args&& ... args);
44 ARP_CXX_SYMBOL_EXPORT
const Impl&
operator*(
void)
const;
46 ARP_CXX_SYMBOL_EXPORT
explicit operator bool(
void)
const noexcept;
57 using ImplPtr = std::unique_ptr<Impl>;
61 template <
class ...Args>
62 ARP_CXX_SYMBOL_EXPORT
explicit PimplPtr(Args&& ... args);
82 ARP_CXX_SYMBOL_EXPORT
const Impl&
operator*(
void)
const;
84 ARP_CXX_SYMBOL_EXPORT
explicit operator bool(
void)
const noexcept;
ARP_CXX_SYMBOL_EXPORT Impl & operator*(void)
Gets the reference to the Impl instance for none const objects.
ARP_CXX_SYMBOL_EXPORT const Impl * operator->(void) const
Gets the pointer to the const Impl instance for const objects.
ARP_CXX_SYMBOL_EXPORT ~PimplPtr(void)
Destructs this instance and frees all resources.
ARP_CXX_SYMBOL_EXPORT PimplPtr(PimplPtr &&arg) noexcept
Move constructor.
ARP_CXX_SYMBOL_EXPORT PimplPtr(Args &&... args)
Constructs an PImpl instance using the supplied arguments.
ARP_CXX_SYMBOL_EXPORT Impl * operator->(void)
Gets the pointer to the Impl instance for none const objects.
ARP_CXX_SYMBOL_EXPORT PimplPtr & operator=(const PimplPtr &arg)
Assignment operator.
ARP_CXX_SYMBOL_EXPORT PimplPtr(const PimplPtr &arg)
Copy constructor.
ARP_CXX_SYMBOL_EXPORT const Impl & operator*(void) const
Gets the reference to the const Impl instance for const objects.
ARP_CXX_SYMBOL_EXPORT PimplPtr & operator=(PimplPtr &&arg) noexcept
Assignment move operator.
Small wrapper class to ensure const correctness using PImpl pattern.
Definition: PimplPtr.hxx:16
ARP_CXX_SYMBOL_EXPORT const Impl * operator->(void) const
Gets the pointer to the const Impl instance for const objects.
ARP_CXX_SYMBOL_EXPORT ~PimplPtr(void)
Destructs this instance and frees all resources.
PimplPtr & operator=(const PimplPtr &arg)=delete
Assignment operator.
ARP_CXX_SYMBOL_EXPORT PimplPtr(PimplPtr &&arg) noexcept
Move constructor.
ARP_CXX_SYMBOL_EXPORT PimplPtr(Args &&... args)
Constructs an PImpl instance using the supplied arguments.
PimplPtr(const PimplPtr &arg)=delete
Copy constructor.
ARP_CXX_SYMBOL_EXPORT Impl * operator->(void)
Gets the pointer to the Impl instance for none const objects.
ARP_CXX_SYMBOL_EXPORT PimplPtr & operator=(PimplPtr &&arg) noexcept
Assignment move operator.
ARP_CXX_SYMBOL_EXPORT Impl & operator*(void)
Gets the reference to the Impl instance for none const objects.
ARP_CXX_SYMBOL_EXPORT const Impl & operator*(void) const
Gets the reference to the const Impl instance for const objects.
Root namespace for the PLCnext API