Initial Commit
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
#ifndef PIMPL_IMPL_HPP_
|
||||
#define PIMPL_IMPL_HPP_
|
||||
|
||||
#include <utility>
|
||||
|
||||
template<typename T>
|
||||
pimpl<T>::pimpl () : m_ {new T {}} {}
|
||||
|
||||
template<typename T>
|
||||
template<typename ...Args>
|
||||
pimpl<T>::pimpl (Args&& ...args) : m_ {new T {std::forward<Args> (args)...} } {}
|
||||
|
||||
template<typename T>
|
||||
pimpl<T>::~pimpl () {}
|
||||
|
||||
template<typename T>
|
||||
T * pimpl<T>::operator -> () {return m_.get ();}
|
||||
|
||||
template<typename T>
|
||||
T const * pimpl<T>::operator -> () const {return m_.get ();}
|
||||
|
||||
template<typename T>
|
||||
T& pimpl<T>::operator * () {return *m_.get ();}
|
||||
|
||||
template<typename T>
|
||||
T const& pimpl<T>::operator * () const {return *m_.get ();}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user