<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jan 24, 2011, at 3:50 AM, Hans Wennborg wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Hi,<br><br>The attached patch attempts to fix <a href="http://llvm.org/bugs/show_bug.cgi?id=8295">http://llvm.org/bugs/show_bug.cgi?id=8295</a><br><br>My reasoning is that:<br><br>1. For a regular function template declaration, one would never have<br>template arguments<br>2. The same holds for overloading<br>3. For a function template explicit specialization ("full<br>specialization"), one would never have template parameters.<br><br>So, if a function template declaration has both template parameters<br>and template arguments, it must be an attempt at partial<br>specialization.<br><br>I would be grateful if someone with deeper C++ knowledge could verify<br>that this is correct.<br></div></blockquote><div><br></div>Yes, this is all correct.</div><div><br><blockquote type="cite"><div><br>Also, does C++0x change any of this?<font class="Apple-style-span" color="#000000"><font class="Apple-style-span" color="#144FAE"><br></font></font></div></blockquote><br></div><div>No, C++0x did not change this at all.</div><div><br></div><div>Your patch looks great. I've committed it as r124135, thanks!</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>- Doug</div></body></html>