You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Igor Sapego (JIRA)" <ji...@apache.org> on 2018/11/19 14:52:00 UTC

[jira] [Created] (IGNITE-10333) CPP: Move to newer C++ standard and drop VS 2010 support

Igor Sapego created IGNITE-10333:
------------------------------------

             Summary: CPP: Move to newer C++ standard and drop VS 2010 support
                 Key: IGNITE-10333
                 URL: https://issues.apache.org/jira/browse/IGNITE-10333
             Project: Ignite
          Issue Type: Improvement
          Components: platforms
            Reporter: Igor Sapego
             Fix For: 3.0


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. C++11, C++14 and C++17 were released since then. I propose to plan upgrade to C++11 version at least. May be even C++14. 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




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)