Why do clang and g++ print 0 for a1.v and a2.v in this example in C++1z? : <p>See this example in <a href="http://eel.is/c++draft/class.init#class.base.init-11" rel="nofollow noreferrer">[class.base.init]/11</a></p>

<pre><code>struct A {
  A() = default;          // OK
  A(int v) : v(v) { }     // OK
  const int&amp; v = 42;      // OK
};
A a1;                     // error: ill-formed binding of temporary to reference
A a2(1);                  // OK, unfortunately
</code></pre>

<p>Both clang and g++ compile the code (clang with a warning), but I'd like to understand why do they print <code>0</code> for the members <code>a1.v</code> and <code>a2.v</code>? See <a href="http://coliru.stacked-crooked.com/a/1df5b497e582732e" rel="nofollow noreferrer">demo</a>.</p>
