Re: [eigen] [patch] Aligned new/delete |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] [patch] Aligned new/delete
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Thu, 7 May 2009 20:42:21 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=/XADACSNUtMhohzFiLy3oFnSyhS9Fd5mN23Ruq5V2s8=; b=GMTqO85i1zBG0rqFNHib9Zd+wXttTuKXI7ddmJjQvKEA2jspV7Eonznu3yYCSVvdcP Cnh7t9S/P2DjFjWC/zsU5Z6/zCRXIKSncQdaEAvfdsEO+mFtDhnufuV0jk8y4iHEgKRH 8V6bzGsFgMaK320E4NS0gNq8+2IEy7gxeptpc=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=irXf++mRZinTtP5zl57EuD2H2445Np4SZjEALagvdaroTnwaFUyntzmwkdR363NUnw pH5cOimSh5BapEBVHM/WQ80La0hbuKPMPdxkbkzuDUVGcyPCMdhm8TGDbVx1VejNNb1e zzqcjs9oi8BFqzX/AWwsQcyPsS3ffmZIuJlaA=
can someone with experience with exceptions and overloading new/delete
please review?
I'm incompetent.
2009/5/6 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
> I made the parameter std::nothrow_t unnamed and ... added the (still
> *shame*) missing no-throw delete.
>
> On Wed, May 6, 2009 at 3:40 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
>> This needs review by someone more competent than me in these
>> matters... I just learnt the meaning of the throw() declaration.
>>
>> One remark: the parameter nt is unused, so perhaps make it unnamed to
>> avoid warnings?
>>
>> Benoit
>>
>> 2009/5/6 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
>>> Two things are covered in this patch.
>>>
>>> 1. Each operator new needs its corresponding operator delete. This was
>>> not the case for in-place new/delete.
>>> 2. Operators new were declared with throw() which is not correct since
>>> in the current standard implementation they may throw std::bad_alloc.
>>> The throw() declaration was moved from new to delete which must never
>>> throw.
>>> 3. Added no-throw new/delete. In order to allow user using no-throw
>>> new and delete I just added them. The difference is that instead of
>>> throwing an exception they return 0 in case of an allocation failure.
>>>
>>> For the in-place new and delete I piped the calls to the global
>>> in-place new and delete functions since actually no allocation is
>>> performed. It is the job of the user to take care that when using
>>> in-place new and delete the memory is properly aligned.
>>>
>>> I ran the unit tests and all besides the new matrix exponential passed
>>> - could not submit to the dashboard since the daily limit is reached.
>>>
>>> Regards,
>>> Hauke
>>>
>>
>>
>>
>