• mkwt@lemmy.world
    link
    fedilink
    arrow-up
    9
    ·
    8 hours ago

    If anyone is starting to learn C++, make sure to use books or training materials based on C++11 or later.

      • boonhet@sopuli.xyz
        link
        fedilink
        arrow-up
        4
        ·
        8 hours ago

        As someone who last touched any C++ books when C++11 was very new and has only written like 20-30 lines of non-tutorial C++ since then, what are some significant changes to the language that I should be aware of if I wanted to give it a try now?

        • glibg10b@lemmy.zip
          link
          fedilink
          arrow-up
          4
          arrow-down
          1
          ·
          7 hours ago

          A few examples:

          • CTAD: Instead of std::pair<int, int> myPair{ 1, 2 }, you just write std::pair myPair{ 1, 2 }
          • std::optional, std::variant and std::any
          • Guaranteed copy elision in some cases, making it more feasible to apply the rule of 5 everywhere
          • Attributes like [[nodiscard]] (compiler warning if an object or return value is discarded) and [[fallthrough]] (suppress a switch fallthrough warning)
          • Generic lambdas ([](auto it){ /* do something */ })
          • std::string_view, which is much safer as a function parameter than const char*