(moving to gcc-help@xxxxxxxxxxx)
Paul Koning schrieb:
I'm upgrading to V4.0.0 and struggling with some code that's seriously into templates. One puzzling error is this one:
keyed_obj.hh:159: error: no matching function for call to 'CxnIndex::CxnIndex(CxnIndex)' Indeces.hh:150: note: candidates are: CxnIndex::CxnIndex(CxnIndex&)
this is not a copy constructor, CxnIndex(CxnIndex const &) is...
Indeces.hh:145: note: ... and some more
...so these would be interesting. CxnIndex(CxnIndex &) only accepts non-const l-values.
It's not entirely clear to me why something very much like a copy constructor is being invoked in the first place. But the bigger puzzle is: why isn't the copy constructor being matched? I would have thought that any call with a T argument should match a function or method with an &T argument in its declaration...
-- Stefan Strasser