<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>