this post was submitted on 02 Feb 2024
293 points (96.8% liked)

Programmer Humor

19503 readers
1230 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] Traister101@lemmy.today 6 points 9 months ago* (last edited 9 months ago) (3 children)

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 :|

[–] Valmond@lemmy.mindoki.com 7 points 9 months ago (2 children)

Found the guy that can probably do function pointers!

[–] SpaceNoodle@lemmy.world 4 points 9 months ago (1 children)

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.

[–] YaBoyMax@programming.dev 1 points 9 months ago (1 children)
[–] SpaceNoodle@lemmy.world 3 points 9 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@lemmy.today 3 points 9 months ago

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

[–] YaBoyMax@programming.dev 3 points 9 months ago (1 children)

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@lemmy.today 2 points 9 months ago

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

[–] blackstrat@lemmy.fwgx.uk 1 points 9 months ago

I always read it right to left and it seems to make sense to me.