• lysdexic@programming.devOPM
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      6 months ago

      You’d be missing the whole point too if you think that the pointer is the root cause. The problem is that the class is not designed to be copy-able, let alone moveable. Your suggestion to use a unique_ptr will also blow up in your face the moment you try to copy an instance.

  • CameronDev@programming.dev
    link
    fedilink
    arrow-up
    4
    ·
    6 months ago

    I got stuck on cheese counting:

    inventory.count(cheeseName) == 1 ? "Yes" : "No"
    

    1 cheese == some, 2 cheese == none :/

    • rasensprenger@feddit.de
      link
      fedilink
      arrow-up
      3
      arrow-down
      1
      ·
      6 months ago

      Yeah, that’s confusing to read. A hashset can only contain at most one of each cheese kind, in c++20 you can write inventory.contains(cheeseName), before that you had to use .count or inventory.find(cheeseName) != inventory.end() or something like that

    • lysdexic@programming.devOPM
      link
      fedilink
      English
      arrow-up
      1
      arrow-down
      1
      ·
      6 months ago

      Naked pointers are just too stupid for modern C++ ;)

      Anyone who works on real-world production software written in C++ knows for a fact that pointers are a reality.

      Also, there are plenty of frameworks who employ their own memory management frameworks, and raw pointers are perfectly fine in that context. For example, Qt uses raw pointers extensively because It’s object system implements an object ownership system where each object can have child and parents, and you can simply invoke deleteLater() to free the whole dependency tree when you no longer need it.

      • vzq@lemmy.blahaj.zone
        link
        fedilink
        arrow-up
        1
        arrow-down
        1
        ·
        edit-2
        6 months ago

        Your reply is an amazing mix of condescension and not getting the point.

        I’m having it framed.