For example, clang does not compile this code, because, the defaulted default constructor for struct A below, A() = default; is not considered to be user-provided.
struct A{ A() = default; };
const A a;
But if you look at [dcl.fct.def.general]/1 you'll see:
function-body:
ctor-initializeropt compound-statement
function-try-block
= default ;
= delete ;
That is, = default; is the function body for the default constructor A::A(), which is the same as saying that the definition A() = default; above is equivalent to A(){} as {}is the body for a default constructor.
By the way, g++ compiles the snippet above, but I know g++ has other issues in this regard, according to this comment by Jonathan Wakely.