26 OpaquePtr<T>::OpaquePtr() : m{
new T{} } { }
29 template<
typename ...Args>
30 OpaquePtr<T>::OpaquePtr( Args&& ...args ) : m{
new T{ std::forward<Args>(args)... } } { }
33 OpaquePtr<T>::OpaquePtr(OpaquePtr<T>
const& other) : m{
new T(*other.m) } { };
36 OpaquePtr<T>::OpaquePtr(OpaquePtr<T>&& other) : m{ std::move(other.m) } { };
39 OpaquePtr<T>& OpaquePtr<T>::operator=(OpaquePtr<T>
const& other) {
45 OpaquePtr<T>& OpaquePtr<T>::operator=(OpaquePtr<T>&& other) {
46 m = std::move(other.m);
51 OpaquePtr<T>::~OpaquePtr() =
default;
54 T* OpaquePtr<T>::operator->() {
return m.get(); }
57 T
const* OpaquePtr<T>::operator->()
const {
return m.get(); }
60 T& OpaquePtr<T>::operator*() {
return *m.get(); }
The Procedural Runtime eXtension namespace. The prtx namespace contains the tools to extend the Proce...
Definition: AnnotationBuilder.h:35