[gecode-users] operator = for NaryUnion
Christian Schulte
cschulte at kth.se
Thu Jul 11 18:18:30 CEST 2013
Hi,
Yes that is a bug in the default constructor of NaryUnion. Alas, I have no
idea yet how to fix it (the point is, this damned thing should not have a
default constructor in the first place ;-( ).
The reason why the default constructor comes into play is because of the
array declaration narr[2] which runs the default constructor on narr[0] and
narr[1]. What would make it work is if you first run a call to init() on the
array elements narr[.] rather than an assignment operator.
Cheers
Christian
--
Christian Schulte, www.ict.kth.se/~cschulte/
From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
Of Farshid Hassani Bijarbooneh
Sent: Thursday, July 11, 2013 6:01 PM
To: users at gecode.org
Subject: [gecode-users] operator = for NaryUnion
Hi,
In Gecode 4.1 creating n-ary union of variable ranges and assigning to a
NaryUnion causes a segmentation fault, whereas in Gecode 3.7.3 it seems to
work:
Region myRegion(*this);
Iter::Ranges::NaryUnion narr[2];
IntVarRanges* varRange = myRegion.alloc<IntVarRanges>(x.size()); // x is
IntVarArray variables of the model
for (int r=0; r < x.size(); r++) {
varRange[r].init(x[r]);
}
narr[0] = Iter::Ranges::NaryUnion(myRegion, varRange, x.size());
If we instead create only one NaryUnion then it works fine in Gecode 4.1:
Iter::Ranges::NaryUnion uni(myRegion, varRange, x.size());
I also attached a minimal code demonstrating this issue. Do you think if
there is something I'm missing here?
Cheers,
Farshid
_______________________________________________
Gecode users mailing list
users at gecode.org
https://www.gecode.org/mailman/listinfo/gecode-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.gecode.org/pipermail/users/attachments/20130711/2d6ced4d/attachment.html>
More information about the users
mailing list