[LLVMdev] Using C++'11 language features in LLVM itself
justin.holewinski at gmail.com
Sun Jan 13 12:33:04 PST 2013
On Sun, Jan 13, 2013 at 2:10 PM, Matthieu Monrocq <
matthieu.monrocq at gmail.com> wrote:
> On Sun, Jan 13, 2013 at 7:39 PM, David Blaikie <dblaikie at gmail.com> wrote:
>> On Sun, Jan 13, 2013 at 10:26 AM, Tim Northover <t.p.northover at gmail.com>
>> >> Good points David, I don't feel qualified to evaluate the differences
>> >> between those versions though... Perhaps Richard or Doug could comment
>> > Unless I'm misreading the buildbots, we don't actually have anything
>> > trying to build with MSVC. Have we considered how we're going to
>> > enforce these rather subtle distinctions?
>> The buildbots on lab.llvm.org don't cover Windows, but Takumi
>> maintains Windows buildbots & fairly diligently (autoreporting to IRC,
>> plus manual follow up on review threads, etc) maintains them. Some
>> other developers (such as Michael Spencer) work on Windows on a
>> regular basis, so they'll essentially come screaming if it breaks ;)
> Following the feedback from David, here is an updated list of the
> profiles, taking into account deprecated versions of the specifications of
> the lambdas and r-values that might be of interest. As before, they are
> duly annotated with a remark.
> gcc 4.3, MSVC 10, clang 3.0
> => main benefits are decltype v1.0 , static_assert and built-in type
> gcc 4.4, MSVC 10, clang 3.0
> => main additions: late specified return type.
> gcc 4.5, MSVC 10, clang 3.1
> => main additions: lambda v1.0 , local types as template arguments,
> r-value v2.0 .
> gcc 4.5, MSVC 11, clang 3.1
> => main additions: atomic, lambda v1.1, r-value v2.1 , strongly typed
> gcc 4.6, MSVC 11, clang 3.1
> => main additions: forward enum, nullptr, range-based for.
> gcc 4.7, MSVC 11, clang 3.1
> => main additions: override/final, template aliases.
> gcc 4.7, MSVC 11 nov' 12, clang 3.1
> => main additions: initializer lists, variadic templates v1.0 .
> Note: the only benefit of gcc 4.6 + MSVC10 over gcc 4.5 + MSVC10 is
> As we can see, if we are confident enough in the Windows buildbots to pick
> up the differences between the various versions (and I suppose we already
> rely on them), then the version proposed by Chris does provide a number of
> new C++11 features compared to the current state:
> gcc 4.5, MSVC 10, clang 3.1
> - decltype v1.0  + late specified return type
> - lambda v1.0 
> - local types as template arguments
> - r-value 2.0 
> - static_assert
> - built-in type traits
> The only issue I can see is that a number of people emitted the idea that
> gcc 4.5 might be too advanced for a number of platforms (including RedHat
> for example).
The current crop of enterprise linux distros are on 4.4. Getting a clang
3.2 binary on these systems isn't difficult, though.
> -- Matthieu
> : "decltype v1.0 (n2343)" is subsided by "decltype v1.1 (n3276)" which
> drops the completeness requirement of return types; unfortunately it seems
> no released version of gcc implements v1.1.
> : "lambda v1.0 (n2658)" is subsided by "lambda v1.1 (n2927)", not sure
> of the exact impact of the changes.
> : "r-value v2.0 (n2844)" and "r-value v2.1 (n2844 + core issue 1138)"
> are subsided by "r-value v3.0 (n3053)" once again not sure of the impact of
> the changes; furthermore it seems no released version of MSVC implements
> : a prior implementation of variadic templates (dubbed v0.9) was
> available as soon as gcc 4.4 (with issues regarding template template
> parameters matching), however MSVC never implemented it and jumped straight
> to v1.0 in the CTP release.
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev