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