It’s part of the type yet it’s also a unique identifier. That’s the whole thing with east or west const. constint * is a immutable mutable pointer that points to mutable immutable memory. int *const is a mutable immutable pointer that points to immutable memory. intconst * 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 :|
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.
I think you’ve got it backwards. I learned to read pointer decls from right-to-left, so constint * is a (mutable) pointer to an int which is const while int *const is a const pointer to a (mutable) int.
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 aimmutablemutable pointer that points tomutableimmutable memory.int *const
is amutableimmutable pointer that points toimmutablememory.int const *
is the same type as the first example, aimmutablemutable pointer that points tomutableimmutable 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 beconst
it has to go after.Edit:I am a moron who managed to get it exactly backwards :|
Found the guy that can probably do function pointers!
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.
KISS, my guy.
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.
Lol yeah. I don’t even really write C++ but I sure as shit know a bunch of syntax and junk haha
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 whileint *const
is a const pointer to a (mutable) int.Fuck me man that’s what I get for writing that just before bed
I always read it right to left and it seems to make sense to me.