• Traister101
    link
    fedilink
    5
    edit-2
    11 months ago

    It’s part of the type yet it’s also a unique identifier. That’s the whole thing with east or west const. const int * is a immutable mutable pointer that points to mutable immutable memory. int *const is a mutable immutable pointer that points to immutable memory. int const * is the same type as the first example, a immutable mutable pointer that points to mutable immutable memory.

    Same stuff applies to references which makes it easier to think of the variable owning the * or & as if you want that pointer or reference to be const it has to go after.

    Edit:I am a moron who managed to get it exactly backwards :|

      • @SpaceNoodle
        link
        411 months ago

        I wrote a couple unholy lines of C++ the other day using the ternary conditional operator to select a class member function to be called with a fixed argument.

        I think my teammates were too scared to call me out on it.

          • @SpaceNoodle
            link
            311 months ago

            It’s actually simpler than doing it the “right” way, but I wanted to see how much I could make C++ pretend it was Python.

      • Traister101
        link
        fedilink
        311 months ago

        Lol yeah. I don’t even really write C++ but I sure as shit know a bunch of syntax and junk haha

    • @[email protected]
      link
      fedilink
      English
      311 months ago

      I think you’ve got it backwards. I learned to read pointer decls from right-to-left, so const int * is a (mutable) pointer to an int which is const while int *const is a const pointer to a (mutable) int.

      • Traister101
        link
        fedilink
        211 months ago

        Fuck me man that’s what I get for writing that just before bed