JS8Call-Improved master
Loading...
Searching...
No Matches
pimpl_impl.h
Go to the documentation of this file.
1
16#ifndef PIMPL_IMPL_HPP_
17#define PIMPL_IMPL_HPP_
18
19#include <utility>
20
25template <typename T>
26pimpl<T>::pimpl() : m_{new T{}} {}
27
38template <typename T>
39template <typename... Args>
40pimpl<T>::pimpl(Args &&...args) : m_{new T{std::forward<Args>(args)...}} {}
51template <typename T>
53
59template <typename T>
60T *pimpl<T>::operator->() { return m_.get(); }
61
66 */
67template <typename T>
68T const *pimpl<T>::operator->() const { return m_.get(); }
69
75template <typename T>
76T &pimpl<T>::operator*() { return *m_.get(); }
77
78/**
79 * @brief Constant indirection dereference operator.
80 * @tparam T The encapsulated internal implementation type.
81 * @return A constant reference to the underlying implementation object.
82 */
83template <typename T>
84T const &pimpl<T>::operator*() const { return *m_.get(); }
85
86#endif // PIMPL_IMPL_HPP_
~pimpl()
Destroys the managed implementation block.
Definition pimpl_impl.h:52
T & operator*()
Overloaded indirection dereference operator for mutable access.
Definition pimpl_impl.h:76
pimpl()
Constructs an instance of the opaque implementation object.
Definition pimpl_impl.h:26
T * operator->()
Overloaded structure dereference arrow operator for mutable operations.
Definition pimpl_impl.h:60