http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53725
Bug #: 53725
Summary: Prototype does not match error if the definition of
the ctor is separated from its declaration.
Classification: Unclassified
Product: gcc
Version: 4.6.3
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: [email protected]
ReportedBy: [email protected]
Created attachment 27657
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27657
Minimal example
In certain conditions if the definition of the ctor separated from its
declaration it generates an compiler error.
I created a minimal example. The original code is from Boost.Move.
Error:
testfull.cpp:16:1: error: prototype for ‘movable::movable(rv<movable>&)’ does
not match any in class ‘movable’
testfull.cpp:5:7: error: candidates are: movable::movable(const movable&)
testfull.cpp:13:5: error: movable::movable(rv<movable>&)
If the ctor definition is inside the class the code compiles.
The same can happen with the assignment operator as visible here:
http://lists.boost.org/Archives/boost/2011/07/184263.php