Boost logo

Boost Users :

Subject: Re: [Boost-users] [test] Malloc exceptions when using test framework on 64bit OS X 10.6.1
From: Peter Soetens (peter.soetens_at_[hidden])
Date: 2009-10-12 05:30:28


On Wed, Sep 30, 2009 at 20:48, Steven Watanabe <watanabesj_at_[hidden]> wrote:
> AMDG
>
> Rush Manbert wrote:
>>
>> I see your point, but by not using the pointer polymorphically to delete
>> the derived class objects, you now need to write a workaround for how some
>> compilers are implemented. But if the base class destructor were virtual,
>> the delete would be guaranteed to work by the language definition,
>> regardless of the compiler implementation. You wouldn't care how the
>> compiler implemented it, it would just work. And it will still just work as
>> compilers and runtime libraries for C++ evolve. That seems to make more
>> sense to me.
>
> As Gennadiy has already said, the fact that making the destructor
> virtual fixes the problem is an artifact of the way that compilers
> implement virtual destructors.

Great! I can point to 10000 lines of code in Boost that accommodate
for compiler quirks, especially for MSVS and Borland compilers. So for
once, do the GNU people the same honor and fix this single line of
code for our automated testing happiness.

I don't see any reason here why it shouldn't be fixed for the GNU
compiler, giving the portability/non-discriminality that Boost claims
to have over all compilers.

Just #ifdef the virtual around the destructor for GNU compilers and we
can all happily carry on.

Peter


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net