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

Jeffrey Yasskin jyasskin at googlers.com
Tue Jan 8 16:26:52 PST 2013

On Tue, Jan 8, 2013 at 4:17 PM, Sean Silva <silvas at purdue.edu> wrote:
> On Tue, Jan 8, 2013 at 6:45 PM, Chris Lattner <clattner at apple.com> wrote:
>> some version of GCC and later (linux folks should pick?)
> 4.6 is the official compiler on Ubuntu 12.04 (released 04/2012), which
> is the latest Long Term Support release (which come out every 2 years,
> with 3 years desktop support and 5 years server support), so I
> wouldn't push farther than that on Linux for the time being.
> 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.)


More information about the llvm-dev mailing list