//////////////////////////////////////////////////////////////////////////////// // The Loki Library // Copyright (c) 2006 Peter Kümmel // Permission to use, copy, modify, distribute and sell this software for any // purpose is hereby granted without fee, provided that the above copyright // notice appear in all copies and that both that copyright notice and this // permission notice appear in supporting documentation. // The author makes no representations about the // suitability of this software for any purpose. It is provided "as is" // without express or implied warranty. //////////////////////////////////////////////////////////////////////////////// #ifndef LOKI_PIMPLDEF_H #define LOKI_PIMPLDEF_H #include namespace Loki { template < class Impl, class Ptr, template class Del > inline PimplLife::PimplLife() //: ptr(Ptr()) this owerwrites the pointer to PtrImpl {} // when using DeclaredRimpl!! template < class Impl, class Ptr, template class Del > inline PimplLife::~PimplLife() { Del::Destroy( ptr ); } template < class Impl, class Ptr, template class Del > template inline PimplLife::operator T&() { ptr = Ptr( new Impl ); return *ptr; } template < class Impl, class Ptr, template class Del > inline Ptr PimplLife::Create() { ptr = Ptr( new Impl ); return ptr; } } #endif