C++11 in Skia
=============
-Skia is exploring the use of C++11. As a library, we are technically limited
-by what our clients support and what our build bots support.
+Skia uses C++11. But as a library, we are technically limited by what our
+clients support and what our build bots support.
Skia may also be limited by restrictions we choose put on ourselves. This
document is not concerned with C++11 policy in Skia, only its technical
The gist:
-- C++11 the language as supported by GCC 4.4 or later is probably usable.
+- C++11 the language as supported by GCC 4.7 or later is probably usable.
- If you break a bot, that feature is not usable.
- The C++11 standard library can't generally be used.
- Local statics are not thread safe.
has always been a pain, but since we can't use it anyway (see Chrome), don't
worry about it.
-Mozilla's current weak link is a minimum requirement of GCC 4.6. Most features
+Mozilla's current weak link is a minimum requirement of GCC 4.7. Most features
marked in red on Mozilla's C++11 [feature
matrix](https://developer.mozilla.org/en-US/docs/Using_CXX_in_Mozilla_code) are
-marked that way because they arrived in GCC 4.7 or GCC 4.8. Their
-minimum-supported Clang and MSVC toolchains are great. They also appear to ban
-the C++ standard library.
+marked that way because they arrived in GCC 4.8. Their minimum-supported Clang
+and MSVC toolchains are great. They also appear to ban the C++ standard
+library.
Internal Google projects tend to support C++11 completely, including the
full C++11 standard library.
Chrome's toolchains (see above). I'm not exactly sure what our Chrome OS bots
are using, but they've never been a problem.
-A few miscellaneous compile-only bots are actually our current overall weak link:
-
-- Our iOS builds are driven from a Mac 10.7 machine using some unknown old Clang.
- Who knows how old that is or what it supports? It's probably due for an update.
-
-If we were to eliminate the problems of iOS bots, our ability to
-use C++11 would match Mozilla's list nearly identically.
+I believe our bots' ability to use C++11 matches Mozilla's list nearly identically.