On 1/6/2015 3:33 PM, Ehsan Akhgari wrote:
I just landed bug  to remove support for building with Visual C++ 2012 as
per the previous dev-platform thread.

Trevor Saunders has just landed the patch to de-support gcc 4.4 and 4.5 on mozilla-inbound, and it should move to mozilla-central shortly. In addition to the C++11 features enabled by are very recent landing of min-MSVC 2013 (reproduced afterwards), this admits the possibility to use the following features:
* Lambdas
* nullptr/std::nullptr_t
* Forward declaration of enums
* Explicit operator conversion (most notably, explicit operator bool())
* Raw string literals
* Range-based for loops
* Local structs as template parameters

I have not yet updated the Using C++ in mozilla code page yet, since I need to ascertain what the bugs are in gcc 4.6 and gcc 4.7 that may preclude certain uses of these features.

Or, if it tickles your fancy, it may be simpler at this point to list the C++11 features not yet usable:
- ref qualifiers on methods
- member initializers
- templated aliasing
- C++11 attributes (although many of the important ones are already in some macro somewhere)
- constexpr
- alignof/alignas
- delegated constructors
- inherited constructors
- char16_t [ but we polyfill this anyways]
- user-defined literals
- unrestricted unions
- override/final (already polyfilled)
- thread-local storage (ditto)

As a reminder, the ability to use C++11 features doesn't necessarily mean that doing so is kosher per our style guidelines.
This will make the following C++11 features available to use in Mozilla
code:

* variadic templates
* initializer lists
* =delete (we can probably remove MOZ_DELETE now)
* =default
* function template default arguments

--
Joshua Cranmer
Thunderbird and DXR developer
Source code archæologist

_______________________________________________
dev-platform mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to