Re: [eigen] Compilation errors introduced by recent changes. (aligned stl types & MatrixType rename) |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Compilation errors introduced by recent changes. (aligned stl types & MatrixType rename)
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Wed, 21 Apr 2010 22:48:00 -0400
- 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:received:message-id:subject:from:to:content-type :content-transfer-encoding; bh=rOiS17iA5NIUxj1h3LJpkFCqKVL8qcdD+Vz6lV7+oJA=; b=ratPBU92ykbUhpjsmkoMyf7yeji6x8crKXHkTuk6yvSycOE5pjAiOXXWczR/nxP936 YUWrp+oe50srWWCcUtrNFt1doU9FYqfWEz+cvNrVWK1LYZTwQ5xJ5LZQaZneszAbf9oO qsBEwiLLxeRunF0hIXuxyfHARD9sRTvADBZtQ=
- 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=sRNxtijgUH7ZHcH8ONps9cdu6/SpukhIQFR7RuIWH7DblzZOIZ+bull0BO/tcMHEwl kUtj670CGt4k3yh7f4lcBrH0bJNLQENsoiZJzXc9plvunyw+m3GSegxGy3rZznuehWhS qpQZW7+XnfLlsA3iemr3O4bv6T/zrWPOjTo8o=
What I don't understand is that this kind of construct, setting the
default value for a template param as an expression depending on other
template params via templates, is not isolated in eigen, we had lots
of that already in 2.0, for example in Assign.h, ei_assign_impl:
template<typename Derived1, typename Derived2,
int Traversal = ei_assign_traits<Derived1, Derived2>::Traversal,
int Unrolling = ei_assign_traits<Derived1, Derived2>::Unrolling>
struct ei_assign_impl;
So why is this one failing?
Just trying to understand how to construct a work-around.
Benoit
2010/4/21 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
> Guys, I am sorry and afraid that no Visual Studio system seems to be
> able to compile Eigen's devel branch at the moment. I already filed a
> bug report yesterday night.
>
> It is located here (http://tinyurl.com/y2onuvg), reproducible and
> currently under investigation. I have already spent a lot of time to
> find a workaround - Benoit did as well, and we have no solution at the
> moment.
>
> You can verify that it is the bug I submitted by modifying the file
>
> Eigen/src/Core/util/ForwardDeclarations.h
>
> by changing the Block forward declaration to
>
> template<typename MatrixType, int BlockRows=Dynamic, int BlockCols=Dynamic,
> int _DirectAccessStatus = HasDirectAccess
> /*ei_block_direct_access_status<MatrixType>::ret*/> class Block;
>
> This is no (!) solution! It is just a way to compile the most trivial
> Eigen code based on matrices.
>
> The sample code from the bug report does not compile with VS 2010 and
> my assumption is that it does neither with VS 2008.
>
> We have to wait for Microsoft or some smart person to come up with a
> fix for this serious show stopper.
>
> - Hauke
>
> On Wed, Apr 21, 2010 at 7:03 PM, Ilya Baran <baran37@xxxxxxxxx> wrote:
>> Hi,
>>
>> I'm getting this error on MSVC 2008 and MSVC 2010, so I don't think
>> it's an MSVC 2010 bug.
>>
>> Thanks,
>>
>> -Ilya
>>
>> On Wed, Apr 21, 2010 at 12:55 PM, Eamon Nerbonne
>> <eamon.nerbonne@xxxxxxxxx> wrote:
>>> On Wed, Apr 21, 2010 at 18:30, Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>
>>> wrote:
>>>>
>>>> Ok, having that said, when you reported the issue even this (correct code)
>>>>
>>>> std::vector<Vector2d, Eigen::aligned_allocator<Vector2d> > stlvec(10,
>>>> Vector2d());
>>>>
>>>> failed which I fixed now.
>>>
>>> Oops - I see my example was a little hasty indeed.
>>>
>>>>
>>>> If you hit any other issues please let me know.
>>>>
>>>
>>> Well, I still can't compile anything including eigen after Benoit's
>>> changeset labelled "renaming (MatrixType ---> whatever appropriate) ..."
>>> from the 18th - since you haven't run into it, I take it that this
>>> compilation error is due to a bug in the RC that's been fixed in 2010 RTM?
>>>
>>> Even the following won't compile in the latest version:
>>> #include "Eigen/Core"
>>> int main(){ return 0;}
>>>
>>> That results in 11 "error C2065: 'MatrixType' : undeclared identifier"
>>> errors.
>>>
>>>
>>
>>
>>
>
>
>