Boost logo

Boost :

Subject: Re: [boost] [config] call to destructor of temporary
From: Vicente J. Botet Escriba (vicente.botet_at_[hidden])
Date: 2012-10-15 02:55:51

Le 15/10/12 01:08, Mathias Gaunard a écrit :
> On 15/10/2012 00:24, Vicente J. Botet Escriba wrote:
>> Hi,
>> I have had some trouble debugging some code with clang-2.9 c++0x. The
>> reason was a known bug on the compiler as it doesn't call the destructor
>> of temporaries at the end of the expression.
>> Is there a macro stating this missing feature?
> That's a severe bug, doesn't look like any workaround would fix it
Yes you are right.

In my particular case the bug manifest at the test side and the library
already provided an interface that allows workaround

     S s;
       U u=s.make_u();
     s->append("foo/"); // S::operator->() returns a temporary for which
the destructor must be called here

Ah, the bug doesn't appear with all the temporaries, and that



I don't know yet if this is limited to the temporaries that operator->
could return. While this is a severe bug, the workaround seems
reasonable. Of course on compilers with such a bug S::operator->() will
not be available.

Note that I have no special interest in supporting this compiler, if the
Boost community don't support it.



     U S::operator->()
       return S(*this));

     U S::make_u()
       return S(*this));

Boost list run by bdawes at, gregod at, cpdaniel at, john at