AMDG On 08/02/2013 03:33 PM, Agustín K-ballo Bergé wrote:
<snip> Doesn't a defaulted function get the access level it would get if implicitly declared? In C++11 mode the singleton constructor and destructor would be public. At least gcc-4.8.1 thinks so: http://ideone.com/FSXqeX
<snip>
[dcl.fct.def.default]/4: Explicitly-defaulted functions and implicitly-declared functions are collectively called defaulted functions, and the implementation shall provide implicit definitions for them (12.1 12.4, 12.8), which might mean defining them as deleted. (...)
[class.ctor]/4: A default constructor for a class X is a constructor of class X that can be called without an argument. If there is no user-declared constructor for class X, a constructor having no parameters is implicitly declared as defaulted (8.4). An implicitly-declared default constructor is an inline **public** member of its class. (...)
I don't see it. This paragraph says nothing about explicitly defaulted functions. It very clearly states that it applies to *implicitly-declared* default constructors In Christ, Steven Watanabe