|
JS8Call-Improved master
|
Opaque implementation manager utilizing perfect forwarding of constructors. More...
#include <pimpl_h.h>
Public Member Functions | |
| pimpl () | |
| Constructs an instance of the opaque implementation object. | |
| template<typename... Args> | |
| pimpl (Args &&... args) | |
| Forwarding constructor that handles dynamic parameter passing. | |
| ~pimpl () | |
| Destroys the managed implementation block. | |
| T * | operator-> () |
| Overloaded structure dereference arrow operator for mutable operations. | |
| T const * | operator-> () const |
| Overloaded structure dereference arrow operator for constant operations. | |
| T & | operator* () |
| Overloaded indirection dereference operator for mutable access. | |
| T const & | operator* () const |
| Overloaded indirection dereference operator for constant access. | |
Opaque implementation manager utilizing perfect forwarding of constructors.
Encapsulates the boilerplate required to separate an interface from its hidden, underlying implementation properties. Avoids cascading compilation unit rebuilds when modifying hidden data structures.
| T | The encapsulated, incomplete internal implementation type (e.g., widget::impl). |
| pimpl< T >::pimpl | ( | ) |
Constructs an instance of the opaque implementation object.
Default constructor allocating a default-initialized implementation object.
Default constructor dynamically initializes target internal block context out-of-line.
| T | The encapsulated, now-complete internal implementation type. |
Forwarding constructor that handles dynamic parameter passing.
Variadic forwarding constructor passing all parameters to the implementation object.
Utilizes variadic template arguments to safely perfect-forward initialization properties into the hidden destination instance structure.
| Args | Variadic parameter packs inferred at compilation runtime. |
| [in,out] | args | Deduced universal reference parameters passed to the underlying constructor. |
Demonstrates double-template declaration syntax: one for the class template parameters and one for the member function template parameters.
| T | The encapsulated internal implementation type. |
| Args | Variadic parameter types inferred at call site. |
| [in,out] | args | Universal reference parameters to forward to T's constructor. |
Destroys the managed implementation block.
Destructor.
Must be defined out-of-line in an implementation context where type T is complete, otherwise compilation will fail with standard library template restrictions.
Safely deletes the internal opaque instance pointer. Because this definition runs in the implementation context, the full definition of T is available, which avoids compilation errors caused by deleting an incomplete type.
| T | The encapsulated internal implementation type. |
| T & pimpl< T >::operator* | ( | ) |
Overloaded indirection dereference operator for mutable access.
Mutable indirection dereference operator.
| T | The encapsulated internal implementation type. |
| T const & pimpl< T >::operator* | ( | ) | const |
Overloaded indirection dereference operator for constant access.
Constant indirection dereference operator.
| T | The encapsulated internal implementation type. |
| T * pimpl< T >::operator-> | ( | ) |
Overloaded structure dereference arrow operator for mutable operations.
Mutable structure dereference arrow operator.
T.| T | The encapsulated internal implementation type. |
| T const * pimpl< T >::operator-> | ( | ) | const |
Overloaded structure dereference arrow operator for constant operations.
Constant structure dereference arrow operator.
T.| T | The encapsulated internal implementation type. |