[cfe-commits] [patch] Allow vector<id<protocol>> in objc++11

jahanian fjahanian at apple.com
Fri Dec 14 08:54:52 PST 2012


On Dec 13, 2012, at 7:45 PM, Richard Smith <richard at metafoo.co.uk> wrote:

> On Thu, Dec 13, 2012 at 7:26 PM, Nico Weber <thakis at chromium.org> wrote:
>> Hi,
>> 
>> C++11 allowed writing "vector<vector<int>>" without a space between ">" and
>> ">".
>> 
>> 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).
>> 
>> 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.
>> 
>> 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.
> 
> The patch looks fine, and the language change makes sense to me, but
> please wait for someone with more knowledge about Objective-C to
> confirm that this is OK.

lgtm for objective-C++ side.
- Fariborz

> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits




More information about the cfe-commits mailing list