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

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


I tried; the problems were introduced with the MatrixType renaming change.  Backing out that changeset fixes things; so that's what I've done locally.  It's probably an MSC bug related to scoping of template parameters interacting with, say, inheritance - but I haven't spotted the exact cause.

--eamon@xxxxxxxxxxxx - Tel#:+31-6-15142163


On Thu, Apr 22, 2010 at 08:03, Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx> wrote:
It probably has to do with the include order. Only Constants.h is
included before ForwardDeclarations.h. This is a whole different story
for Assign.h.

Though you are right. I am also getting more and more puzzled.  In
particular since now VS 2008 users are affected and it confuses my why
we are seeing this just as of now. If I find time, I might try a
bisection to find the erroneous commit.

- Hauke

On Thu, Apr 22, 2010 at 4:48 AM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
> 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/