Bug 1560664 [0] stuck on central, so all of mozilla-central is compiled as
C++17 now.

Most C++17 language features should be usable; whether library features are
fully implemented across all of our supported compilers/standard libraries
is yet to be determined [5].  I will be updating our C++ usage page [4]
shortly.

The feature people will be most excited about is probably "if constexpr"
[1][2], though I have heard expressions of happiness about structured
bindings [3].

As part of this effort, we have upgraded our minimum version requirements
for clang to 5 and for GCC to 7.1.  clang 5 is known to have issues with
some C++17 language features (e.g. inline variables), and clang 6 is known
to miscompile Firefox; bumping to require at least clang 7 in the
not-too-distant future is a definite possibility.

I don't anticipate that we would upgrade to C++20 for at least another year
or so.

Thanks to everybody who contributed patches and reviews for this effort,
especially Marco Castelluccio for resolving some involved issues with
coverage tests.

Happy hacking,
-Nathan

[0] https://bugzilla.mozilla.org/show_bug.cgi?id=1560664
[1] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0128r1.html
[2] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0292r1.html
[3] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0144r2.pdf
[4]
https://developer.mozilla.org/en-US/docs/Mozilla/Using_CXX_in_Mozilla_code
[5] As usual, please continue to prefer Firefox equivalents for standard
library entities unless there is good reason to do otherwise (e.g.
interoperability with third-party code), as the Firefox equivalents
typically perform better, have improved safety features, and/or integrate
better with other machinery (e.g. leak checking).
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to