Description
Over time we were very conservative about language levels for our libraries to be able to target wider platforms. But it looks like some of them are way too old, what doing more harm than good.
For C++ we still use C+03 standard, which 15 years old. C11, C14 and C17 were released since then. I propose to plan upgrade to C11 version at least. May be even C14. Major improvements in C+11:
1) Standard threading model - we will be able to remove a lot platform-dependent code (atomics, shared pointers, etc)
2) Rvalues - most probably we will be able to benefit from move semantics in terms of both performance and cleaner API
3) Lambdas - this needs to be investigated, but may be we will be able to integrate them into our compute API.
Also, we should take into account that even VS 2017 does not support all C+11 (and even C+03) features [1]. So, we should also drop support of VS 2010 and move to at least VS 2012. Features list for different VSs [2].
[1] - https://docs.microsoft.com/en-us/cpp/visual-cpp-language-conformance?view=vs-2017
[2] - https://msdn.microsoft.com/en-gb/library/hh567368.aspx?f=255&MSPPError=-2147217396
Attachments
Issue Links
- links to