Re: [eigen] Static asserts in Eigen3 beta1/beta2 |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Static asserts in Eigen3 beta1/beta2
- From: hauke strasdat <strasdat@xxxxxxxxx>
- Date: Fri, 19 Nov 2010 12:34:51 -0800
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:received:in-reply-to :references:from:date:message-id:subject:to:content-type :content-transfer-encoding; bh=AWtqpCoFQ1grosVGXyK9UHXWbItPBYF701ml+m3ScFU=; b=FEPvW54V999jUMDpqP1X22qSCijbMbYWYLLtZ1PHvPvsyMNI2Ob8SMn8AGFxnwyZMa bXmGJqDHOC8yzanOn8HqjEcplbB8vfGLCQScixqXdD+QrGpjfUkJK9C54kPWGYRPVgtl AW14On5oxWeUZgvRdjiCwflQQZdnTbiINzkQo=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type:content-transfer-encoding; b=Clj0Zd8ApNwueVe6YkgK7Y/y5186VsoojbZeBJT5CTH+2LWdNuiusnjKlQESxCf4EC M7MxmR6orhNU2AMy7K644GG55JQ1Fq79dWMm7gJm/B5Jnuov0l7FZP3yHve1NPqSWakD YJ3IqkAsdf3Wb7lqzZ+tBzTHPuAvrYNuV66i4=
HI Carlos,
Thanks for your fast answer! However, I fear you got me wrong. I am
aware that I pass a 6-Vector into a function which expects a 5-Vector.
Using beta1, I get a compiler error/static assert, which is what I
expect and I want!
However, the problem is - when using beta2 - I don't get a static
assert. The program only crashes during run-time.
My question is: How can I tell beta2 to trigger static asserts as beta1 did?
Cheers,
Hauke
On Fri, Nov 19, 2010 at 12:20 PM, Carlos Becker <carlosbecker@xxxxxxxxx> wrote:
> Hi. The problem is that your function test_v5 takes as its argument a 5x1
> double matrix, and you are trying to pass it a 6x1 double matrix. So the
> message from Eigen makes sense. If you replace Eigen::Matrix<double,5,1>
> by Eigen::Matrix<double,6,1> in the definition of test_v5 then it will work.
> The problem with this approach is that test_v5 will only work with 6x1
> double matrices. If you want to make it more general you can read
> here http://eigen.tuxfamily.org/dox-devel/TopicFunctionTakingEigenTypes..html
> cheers,
> Carlos
>
> On Fri, Nov 19, 2010 at 9:17 PM, hauke strasdat <strasdat@xxxxxxxxx> wrote:
>>
>> Hi,
>>
>> I fear this must be a known issue. However, I couldn't find any
>> information about it.
>>
>> Let's look at the following minimal program.
>>
>> ---
>> #include <Eigen/Core>
>>
>> void test_v5(const Eigen::Matrix<double,5,1> & v)
>> {
>> }
>>
>> int main()
>> {
>> Eigen::Matrix<double,6,1> v6;
>> test_v5(v6);
>> }
>> ---
>>
>> Compiled against Eigen3 beta1, it leads to a compiler error/static
>> assert: YOU_MIXED_MATRICES_OF_DIFFERENT_SIZES.
>> This is the desired behavior, right?
>>
>> Compiling the same program against Eigen3 beta2, however, leads to no
>> compiler error! Only at run-time it triggers a assertion.
>>
>> Is there any way to turn the static assertions back on in Eigen3 beta2?
>>
>> I am using Ubuntu 10.04 Amd64, with gcc 4.4.
>>
>> Thanks a lot,
>> Hauke
>>
>>
>
>