Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-10333

CPP: Move to newer C++ standard and drop VS 2010 support

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • 3.0
    • platforms
    • Docs Required

    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

          Activity

            People

              Unassigned Unassigned
              isapego Igor Sapego
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: