Open saraedum opened 3 years ago
The Python code picks the second ctor, whereas the C++ call picks the first. To select the first also in Python, cppyy.gbl.V(0, cppyy.gbl.std.move(cppyy.gbl.mpq_class()))
does the trick.
The problem appears to be that the template resolves to T*&&
args, not T&&
.
This is once more the trouble with Cling not providing any details what the template looks like, but only allowing to try guesses. That 0
means that typename X
is going to map to int
and things go downhill from there. Upstream is working on improving that, but it's going slow.
A segfault showed up for me when upgrading flatsurf from cppyy 1.9.* to 2.1.0.
The problem seems to be related to move semantics and
std::forward
.I might be doing something wrong here somehow but this used to work with older versions of cppyy.
I am seeing the segfault with the latest version of cppyy from conda-forge on Linux.