Viewing 0 reply threads
  • Author
    • #83694

        Here is a interesting thread on reddit:

        For a serious answer, the stories goes:

        C++11, was originally called C++0x, because it was supposed to be released before 2009. It didn’t happen, and was changed to C++1x when it slipped too much.

        After C++11, there was the need for another names, so C++1y was quite logical. At this point, C++ started to settle on 3 years standard updates, and C++1y ended up being C++14.

        Obviously, the next one was C++1z, and ended up as C++17

        Now, there is the need for a name for C++20, before it is official. C++2x would be logical, however, if the 3 years cycle continues, then we’ll run out of letters (C++2x for C++20, C++2y for C++23, C++2z for C++26 and, logically C++2{ for C++29. Oops.). So starting with C++2a makes sense.

        Another question would be, why not C++20 directly ? Well, first it may end up in 2021, and second and much more important, if a compiler start to implement C++20 using std=C++20, then we will have non confirming implementations of C++20 with the C++20 name. Which is a nope, so there is the need for a placeholder name.

        Hence C++2a makes sense to me.

        To make it short, C++2a is the name for C++20 before is is official. The same holds for C++2b for C++23.

    Viewing 0 reply threads
    • You must be logged in to reply to this topic.