"No matching function" -- not finding copy constructor

Stefan Strasser sstrasser@systemhaus-gruppe.de
Tue May 17 16:16:00 GMT 2005


(moving to gcc-help@gcc.gnu.org)

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



More information about the Gcc-help mailing list