• boonhet@sopuli.xyz
    link
    fedilink
    arrow-up
    4
    ·
    21 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
      9
      arrow-down
      1
      ·
      21 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*