<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">On Oct 30, 2013, at 7:24 AM, David Chisnall <<a href="mailto:David.Chisnall@cl.cam.ac.uk">David.Chisnall@cl.cam.ac.uk</a>> wrote:<br><div><br class="Apple-interchange-newline"><blockquote type="cite"><span style="font-family: HelveticaNeue; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; float: none; display: inline !important;"> It would be cleaner, from a documentation standpoint, to be able to mark a protocol that a class implemented as requiring reimplementation in all subclasses.  Then it could be something that was both obvious in the documentation and checkable in the compiler.</span></blockquote></div><br><div>Right.  This follows on my comment about protocols in my previous email:</div><div><br></div><div><blockquote type="cite"><span style="font-family: HelveticaNeue;">varadictemplate: Do you see a compelling need for this that cannot be modeled using protocols?  The class adopting the protocol is saying “all methods are implemented” for that protocol, which is natural way to express not only that a particular method is implemented, but that a group of methods are implemented.</span></blockquote></div><div><span style="font-family: HelveticaNeue;"><br></span></div><div><font face="HelveticaNeue">I think my reasoning was a bit imprecise here.  The base class likely wants to adopt the protocol as well, but force the protocol to be implemented by subclasses.  This seems like a more general mechanism than just annotating individual methods.</font></div><div><font face="HelveticaNeue"><br></font></div><div><font face="HelveticaNeue">variadictemplate: what do you think?</font></div></body></html>