$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Peter Dimov (pdimov_at_[hidden])
Date: 2006-06-08 05:46:36
Gottlob Frege wrote:
> IIRC, one of boost's smart ptrs can be used with an incomplete type.
> How is the compile of the destructor delayed?
>
> ie
>
> ~my_smart_ptr()
> {
> get()->~T(); // error: T is an incomplete type
> }
In pseudocode, something along the lines of:
class my_smart_ptr
{
T * p;
void (*f)( T* );
my_smart_ptr( T* p ): p( p ), f( &delete ) {}
~my_smart_ptr() { f(p); }
};
> I wondered through lots of the shared_ptr code, but I got a bit
> bleary-eyed. On that note, does anyone have a script or
> preprocessor call or something that converts all the boost code into
> the 'clean and ideal boost'? ie the one without the layers and
> layers of compiler workarounds, etc?
shared_ptr doesn't have _that_ many compiler workarounds. :-)