[eigen] MSC compiler error: worth working around?

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

Hi all,

In the course of specializing some of my code to accept various eigen matrix types, I ran into an MSC bug.  Essentially, eigen's classes have lots of members in the style of "using Base::SomeEnumMember;".  Using those kind of "inherited" members as part of computations (not just unmodified usage) in template parameters in MSC triggers compiler bugs or an ICE (depending on the computation).  I submitted a simple test-case & bug report to microsoft, but that's been closed [WontFix].

One workaround would be to replace "using Base::SomeEnumMember;" with "enum{ SomeEnumMember = ei_traits<typename Base::Derived>::SomeEnumMember};".  Leaving it out entirely works in MSC but not in GCC, unless I'm missing something.  Alternatively, wouldn't it be possible to remove these helpers entirely and just always refer to ei_traits for these things?

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

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