On 11/11/2015 20:08, Artyom Beilis wrote:
Hi Artyom,
While I appreciate your point of view, I believe it is too focused on your own limited perspective. For example, Apple, Google, and Facebook are all using C++11 extensively.
Here in Silicon Valley, the startup ecosystem is using c++11/c++14 almost exclusively. They are using clang/llvm mostly, while quite a few others are using the latest g++, which is currently gcc-5.x. The vast majority of new jobs are created by the startup ecosystem. (Future boost releases should be mindful of the tool chains being used to create most of the new jobs.)
Yes... for every new project or actively developed one C++11 is great.
But there are two areas where it isn't
(a) Existing projects that need to be maintained in new environment (b) Libraries that need to support C++03 as they are used in wide range of environments (like Boost for example) and should provide same API.
For those like me that work in industrial environments, when you need to give support for 30 years, C++11 won't be an option in several years. Not to mention safety-related qualified toolchains which are really conservative. Silicon Valley is not the place were most C++ programmers work. The only thing we really miss is move semantics, we can live without lambdas, uniform initialization, etc. custom libraries can fill missing c++11 std library features. In any case Artyom, I designed boost.unique_ptr's C++03 mode to be as lightweight as possible. Please take a look at it, it might work for you as a long-term solution. Boost.Container also supports emulated move semantics and boost.unique_ptr, so you might have a good ecosystem to obtain more safety in C++03 compilers in a forward-compatible way. Best, Ion