Re: [eigen] [patch] Missing function in StdVector |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] [patch] Missing function in StdVector
- From: Gael Guennebaud <gael.guennebaud@xxxxxxxxx>
- Date: Wed, 6 May 2009 16:24:13 +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=FHXUwduyz/eHCFZzlZKkeSRKjhrpyfMBMIfTTfOOAiE=; b=hkaSLOJTYdyVrJUScNiOYuRYjxLZV3OK/ceqGEtcP7BvvkPfkTIqYenNPbAqJGBkpy bs4OgQ4saHGQF8Mv+bjp/+qsrM08CAdKhbCeZ34JNMFRLw3zaJykBASXutnlnMoxXX35 Yl/oeORayssGB+d3r7eApixHQeXJLMKGLf1cY=
- 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=TeyvalTZJ4DZuIlpjmQcLMXZO0r/7HKEFXTpdvICRTBJGIZtIDuq8B09VXk/iYpa0M yGv+Hcseg+Brg4mOjckPFist9vBX9eGba93Wq0mnv2EZpWWKZsZi7K42CvfmRuT372o9 rKTXULtbNZLn3KBYXLARPliVaI3Y5NvRhVB68=
On Wed, May 6, 2009 at 4:12 PM, Markus Moll
<markus.moll@xxxxxxxxxxxxxxxx> wrote:
> Hi
>
> On Wednesday 06 May 2009 15:44:44 Gael Guennebaud wrote:
>> On Wed, May 6, 2009 at 3:35 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
> wrote:
>> > Thanks, commited (please check the diff below)
>>
>> actually I think a better fix would be:
>>
>> using vector_base::insert;
>
> Why is insert there anyway? I thought the only problem was with resize?
> Wouldn't just removing insert and push_back suffice?
this is because of the ei_workaround_msvc_std_vector indirection =>
we need to overload each function taking a value_type as argument.
Without these overloads, when you declare:
std::vector<Matrix> vec:
you would only have access to this version of push_back:
push_back(const ei_workaround_msvc_std_vector<Matrix>& x);
To give an example of the problem, if A and B are two Eigen matrices,
then the type of A+B is an Eigen expression, and so in:
std::vector<Matrix> vec:
vec.push_back(A+B);
you need the Matrix ctor taking an expression as argument, but, owing
to ei_workaround_msvc_std_vector indirection this ctor is not
available...
Gael.
> Markus
> --
> PGP key on www.esat.kuleuven.be/~mmoll/public_key.pgp
> Fingerprint is
> 90C4 B47D 1A00 5AC1 9147 3197 EDA7 1E0E 99E4 9EDB
>
>
>