<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>A better way to write the test cases is to only put the expectations in the #if (using @OFFSET), and use the same set of test cases for C++11 and C++98.</div><div><br></div><div>Other than that, seems like a good improvement. Thanks, Nico!</div><div><br></div><div>Jordan</div><div><br></div><br><div><div>On Dec 13, 2012, at 19:26 , Nico Weber <<a href="mailto:thakis@chromium.org">thakis@chromium.org</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt">Hi,<div><br></div><div>C++11 allowed writing "vector<vector<int>>" without a space between ">" and ">".</div>
<div><br></div><div>Objective-C++11 doesn't seem to allow "vector<id<protocol>>" though, and the diagnostic message clang emits for it even gets worse with -std=c++11 (PR14603).</div><div><br></div>
<div>The attached patch allows vector<id<protocol>> (only in c++11 mode) by pulling the parsing code for >> into its own function and calling it from the objc protocol parsing code. In C++98-mode, this also improves the produced diagnostic. I'm aware this is a language change, but it's more permissive so it shouldn't break existing code, and the change feels consistent with c++11 to me.</div>
<div><br></div><div>If you think the language change part is not desirable, I'd want to land the patch but make the new function not suppress the '>>' diagnostic when called from the protocol parser, for the improved diagnostic.</div>
<div><br></div><div>Thanks,</div><div>Nico</div></div>
<span><clang-objcxx11.patch></span>_______________________________________________<br>cfe-commits mailing list<br><a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits<br></blockquote></div><br></body></html>