Re: [eigen] Compilation errors introduced by recent changes. (aligned stl types & MatrixType rename)

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


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.
>>>
>>>
>>
>>
>>
>
>
>



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/