move definition of the destructor to extra file, because msvc tries to use the incomplete type; not inlining does not help; maybe this is a compiler bug.
git-svn-id: svn://svn.code.sf.net/p/loki-lib/code/trunk@493 7ec92016-0320-0410-acc4-a06ded1c099a
This commit is contained in:
parent
385f6b06d4
commit
794fd6ba56
4 changed files with 49 additions and 8 deletions
|
@ -106,12 +106,10 @@ namespace Loki
|
|||
AutoPtrHolder() : ptr(Ptr())
|
||||
{}
|
||||
|
||||
~AutoPtrHolder()
|
||||
{
|
||||
// delete automatically by the delete policy
|
||||
Del<Ptr>::Destroy( ptr );
|
||||
}
|
||||
|
||||
// defined in #include<loki/PimplDef.h>
|
||||
~AutoPtrHolder();
|
||||
|
||||
|
||||
Ptr Create()
|
||||
{
|
||||
ptr = Ptr( new Impl );
|
||||
|
@ -334,7 +332,7 @@ namespace Loki
|
|||
Init;
|
||||
|
||||
|
||||
// ingerit rimpl
|
||||
// inherit rimpl
|
||||
typedef PtrImpl
|
||||
<
|
||||
Impl<T>,
|
||||
|
@ -352,6 +350,9 @@ namespace Loki
|
|||
#endif
|
||||
|
||||
// $Log$
|
||||
// Revision 1.10 2006/01/18 16:49:06 syntheticpp
|
||||
// move definition of the destructor to extra file, because msvc tries to use the incomplete type; not inlining does not help; maybe this is a compiler bug.
|
||||
//
|
||||
// Revision 1.9 2006/01/17 12:03:36 syntheticpp
|
||||
// add comment about auto_ptr
|
||||
//
|
||||
|
|
36
include/loki/PimplDef.h
Executable file
36
include/loki/PimplDef.h
Executable file
|
@ -0,0 +1,36 @@
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
// 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
|
||||
|
||||
namespace Loki
|
||||
{
|
||||
namespace Private
|
||||
{
|
||||
template
|
||||
<
|
||||
class Impl,
|
||||
class Ptr,
|
||||
template<class> class Del
|
||||
>
|
||||
AutoPtrHolder<Impl,Ptr,Del>::~AutoPtrHolder()
|
||||
{
|
||||
Del<Ptr>::Destroy( ptr );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
// $Log:
|
||||
|
|
@ -226,6 +226,10 @@
|
|||
RelativePath="..\..\include\loki\Pimpl.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\loki\PimplDef.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\loki\SafeFormat.h"
|
||||
>
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
#include "type2.h"
|
||||
|
||||
#include <loki/SafeFormat.h>
|
||||
|
||||
#include <loki/PimplDef.h>
|
||||
|
||||
|
||||
/////////////////////////////////////////
|
||||
|
|
Loading…
Reference in a new issue