<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>The text says "already-defined", but in the first case it's merely declared twice.</div><div><br></div><div>If there's really no better justification than "because the standard says so", why not make this Ext or ExtWarn instead of Error? Clearly we already have this working.</div><div><br></div><div>Jordan</div><div><br></div><br><div><div>On Jun 9, 2013, at 23:51 , David Majnemer <<a href="mailto:david.majnemer@gmail.com">david.majnemer@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">The attached patch implements DR85 [*] which disallows the existence of a declaration of a member class that isn't a forward declaration before it's definition.<div><br></div><div>This means that the following would be disallowed:</div>
<div>class A {</div>  struct B; // note here<br class="">  struct B; // error here<div>};</div><div><br></div><div style="">as well as:</div><div style="">class C {</div><div style="">  struct B {}; // note here</div><div style="">  struct B; // error here</div>
<div style="">};</div><div style=""><br></div><div style="">I'm very open to suggestions on the diagnostic, I couldn't think of a great one that doesn't boil down to "this is forbidden because the standard says so."</div>
<div><div><br></div><div>[*] <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#85">http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#85</a></div><div><br></div><div style="">Thanks</div><div style="">
-- </div><div style="">David Majnemer</div></div></div>
</blockquote></div></body></html>