On 10/03/2014 10:35 AM, Mark Wielaard wrote:
Say you have a user defined copy constructor. The DWARF consumer will see the declaration and can assume the class won't have a default constructor (unless that one is explicitly declared too). But currently the DWARF consumer cannot know whether that move constructor was really a user defined. If it was declared with = default; then it will see the move constructor and erroneously conclude that it was user defined and so the class won't have a default constructor generated for it.
That's not erroneous, a declaration with =default still suppresses the default constructor. "If there is no user-declared constructor for class X, a constructor having no parameters is implicitly declared as defaulted."
"user-declared" includes declarations that are defaulted in the class body. "user-provided" is the category that does not include such declarations.
Jason