|
Boost : |
Subject: Re: [boost] boost/checked_delete.hpp
From: Peter Dimov (pdimov_at_[hidden])
Date: 2009-06-08 09:52:28
Kizza George Mbidde:
...
> typedef char type_must_be_complete[ sizeof(T)? 1: -1 ];
> (void) sizeof(type_must_be_complete);
> delete x;
...
> * What's the result of applying sizeof to an incomplete type?
A compile-time error, unless the compiler chooses to return 0 as a
nonstandard extension.
> * Why is sizeof called twice?
The second sizeof is a workaround for a Metrowerks CodeWarrior bug in which
the first typeof is never instantiated unless used.
> * Why is the result of sizeof cast to void? What exactly does that line
> do?
Silences a compiler warning.
> * Is it an empty statement if the sizeof is legal?
Yes.
> * Why not apply x = 0; at the end?
It wouldn't do anything as x is passed by value.
-- Peter Dimov http://www.pdplayer.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk