[LLVMdev] Using C++'11 language features in LLVM itself

Chris Lattner clattner at apple.com
Tue Jan 8 18:23:15 PST 2013

On Jan 8, 2013, at 4:26 PM, Jeffrey Yasskin <jyasskin at googlers.com> wrote:
>> Another thing to bring up is that we have a lot of classes which have
>> method pairs `foo_begin()` and `foo_end()` (e.g.
>> `Function::arg_{begin,end}()`). These don't play nice with range-for
>> loops (we are already seeing this come up in LLD). We probably should
>> adopt some lightweight "range" class and a naming convention
>> (`foo_all()`?) that will interact well with range-for. jyasskin, you
>> have some standards proposals for such a class, maybe you could try
>> bringing that into tree?
> The C++ proposal changes rapidly. While it would be great to get usage
> experience from LLVM in order to inform the C++ proposal, I don't have
> "what will eventually be in C++" to propose for LLVM. Well, I'd expect
> some "range<IteratorType>" template with .begin() and .end() methods,
> but I don't even know what name that template will have.
> I'm not sure this part of the discussion is on-topic for Chris's
> thread, since it's not related to a potential problem with enabling
> C++ language features. (Not having a range type doesn't make
> range-based for loops fail to compile on some platform, it just makes
> them slightly less useful.)

One other specific problem with this is that (I'm told) MSVC 2010 doesn't support range-based for loops.  I don't think it is reasonable to require windows users to be on MSVC 2012.  :-(


More information about the llvm-dev mailing list