I think g++ getting confused by copy elision on return of Eigen temporary?
Method from Ulrich Deiters, superancillary from our new paper
See #2