Re: [eigen] compiler error C2516 for EIGEN_WORKAROUND_MSVC_STL_SUPPORT in details.h |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] compiler error C2516 for EIGEN_WORKAROUND_MSVC_STL_SUPPORT in details.h
- From: Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>
- Date: Thu, 2 Dec 2010 12:43:16 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type; bh=QXjDhe74gikbHZT89czzhzl76+6HjNREXxqKl++k5eI=; b=rIsgrsYE2JhyPnGd8r0toMz2l4tzmD2jBzxelHe24wdeCFnSjFqf/HsgVBHAyd2y5e 4qDYtln0a0hIIqkFF6KP9TiPu3fRpiYIwWT+Za+awE/a9ghclNfLLXi6cBL1KHh16bj6 yCTNaz10f6jh217AWVFdwev8264gGLEbDDxW4=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=uyh8Z4OAgAZiKy9Pd7/b/qzs6VnyIJCppp5OIDYKT6Vf0nuHkKRlRaEpKZo4kzYwfl rvr6uS7WbgzWbtZMPLTuByhb/y94X1cIGZw9/xfgY/jD6YU70GYR349daF6TDXs6QaMq ixX0jGnFsUwqWfkRTTyvhCAGWR+Mqq17HL9NM=
Hi Stefan,
thanks for the test-program. I pushed a fix which hopefully works. ;)
The issue was that for std::vector<T> we tried at some point to derive
from T which works only if T is a class whereas you used a "float". I
agree that this should compile and work but initially the std::vector
workaround was intended for Eigen-types only.
A last comment on the fix which is primarily aimed at Benoit and Gael.
Currently I am assuming that if "!internal::is_arithmetic<T>::value"
is exactly than true when "std::is_calss<T>::value" is true. I am not
sure whether this is actually correct but I am also a bit at a loss of
how to implement "is_class". The STL code here is so cryptic for that
traits helper and contains so many defines that I quit looking after
some time. Maybe you guys have an opinion whether we can live for the
moment with my hack or whether we should do something else.
- Hauke
On Wed, Dec 1, 2010 at 2:32 AM, Stefan Holzer <holzers@xxxxxxxxxxxxxxxx> wrote:
> Hi,
>
> I'm trying to port some code (http://www.ros.org/wiki/pcl) from Linux to
> Windows (Win7 x64 with Visual Studio 2010, compiling for 32-bit). This works
> fine except for a compiler error I get in Eigen/src/StlSupport/details.h in
> line 71:
>
> error C2516: 'T' is not a legal base class
>
> which occurs for the vector:
>
> std::vector<float, Eigen::aligned_allocator<float> > values;
>
> According to the comments in this file this piece of code is specially
> written for Visual Studio. Since the code works fine in Linux there might be
> something wrong with this VS-specific code. I also tested it with Visual
> Studio 2008 and it gives the same error.
>
> I would be happy about any suggestions.
>
> Thanks,
> Stefan
>
>
>
>