RFC: Move to C++14

Alexandros Frantzis alexandros.frantzis at canonical.com
Tue Feb 17 12:37:31 UTC 2015


Hi all,

I think it's to time to consider moving from C++11 to C++14 (at least
the C++14 features our compilers support). C++14 offers some useful
improvements over C++11, like:

* std::make_unique()
* standard literal suffixes for std::chrono (e.g. auto delay = 10ms;)
* std::shared_timed_mutex (aka RW mutex)
* generic lambdas
* lambda capture initializers (which, importantly, allow moving values into
  lambdas)

Moving to C++14 means that we will not be able to build Mir on a
pristine Ubuntu LTS 14.04 system. Note that, even now, Mir cannot be
fully built on the LTS because of changes in the Android interfaces. As
things currently stand, I believe that dropping support for 14.04 builds
in order to allow C++14 is a worthy trade-off.

In addition, not supporting 14.04 builds means that we will be able to
use all the new features of other libraries we depend on, e.g.
gmock/gtest.

It's also worth noting that our packages depend on g++-4.9 (which
supports the C++14 features we want).

I have published an MP introducing C++14 into our codebase:

https://code.launchpad.net/~afrantzis/mir/introduce-c++14/+merge/249988

Let me know what you think.

Thanks,
Alexandros



More information about the Mir-devel mailing list