• xmunk@sh.itjust.works
    link
    fedilink
    arrow-up
    53
    ·
    1 year ago

    C++ the good parts exclusively uses on stack allocation and passing by const reference without ever introducing pointers.

    You know this to be true.

      • Dudewitbow@lemmy.zip
        link
        fedilink
        arrow-up
        17
        arrow-down
        1
        ·
        1 year ago

        Because its essential for application use where memory management becomes extremely vital, usually due to the rom or memory to be extremely linited in size. Worrying about memory management (something C++ makes mandatory) is something not all programmers need to care about, but having automated memory mangement is also what causes bloat that comes with modern applications, due to bad programming practices of not caring about it.

        • Hazzia@discuss.tchncs.de
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          Is it mandatory in C++? I don’t do much with C++ regularly, but I was under the impression that destructors made it so that you wouldn’t have to manually release memory each time an object was destroyed. Or do you mean specifically regarding pointers to those objects needing to be released as well?

          • Dudewitbow@lemmy.zip
            link
            fedilink
            arrow-up
            2
            ·
            edit-2
            1 year ago

            When you ever call new/malloc, its mandatory(dynamic allocation). For general programming, the size is usually decided at compilation.

            Yes destructors will unallocate the memory, but the process of writing the destructor is part of the task of memory management

            It becomes madness if you attempt to call dynamic memory outside of a class and its destructor, and hopefully the dev actually remembers to release said memory when their done.

    • marcos@lemmy.world
      link
      fedilink
      arrow-up
      4
      ·
      1 year ago

      Only integral unsigned numbers, no reference taking at all, no side-effect operators…

  • Duralf@lemmy.world
    link
    fedilink
    arrow-up
    20
    ·
    1 year ago

    The problem is everyone disagrees on what part of C++ is good… Some like C+classes. Some like intense meta programming and some like functional programming and all are valid C++ that people advocate for.

  • Potatos_are_not_friends@lemmy.world
    link
    fedilink
    arrow-up
    9
    arrow-down
    1
    ·
    1 year ago

    This is for any subject.

    There’s a LOT of things that you don’t need to know. Take for example, cooking. To get good, you don’t need to know how fancy tricks. You just need to know the basics very well.

    But after being experienced, it’s valuable to know the other 95%. Those weird edge cases.

    • grue@lemmy.world
      link
      fedilink
      English
      arrow-up
      7
      ·
      1 year ago

      There’s a difference: in this case it’s not about omitting fancy tricks you don’t need to know until you become an expert; it’s about omitting ill-considered features that should never have existed to begin with (or, at best, features that made sense at some point in the past but don’t anymore) and that nobody should ever use again no matter how expert they get.

  • Archpawn@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    The majority of dumb stuff in Javascript is that it has some counterintuitive way of doing something that it shouldn’t do at all, so only teaching the good parts works. So teaching just the good parts is pretty reasonable.