Violates the Law of Demeter
I'm not sure if this is serious or not and that scares me.
the :================D operator
Ebin :D
New language idea:
:====D
:==========D 0
:=======0==D~~~
:==========D ~0
I honestly don't know why they even have -> instead of just a dot like everyone else. The compiler knows whether it's a record, object, pointer, or any level of pointer to pointers.
Why make the programmer do the donkey work?
It's important for objects that can be dereferenced. Smart pointers have methods that can be accessed with dot syntax like swap()
. You can still dereference through a smart pointer using arrow syntax to access methods on the referenced type since they overload the operator->()
method.
I love the arrow in functional programming. Some functional languages (like reasonml) has multiple arrow operators that did different things like this one -> would put the argument in the first position (a popular JS pattern) and the big arrow |> would put it last like most functional languages.
I know this is about CPP but honestly I love the way it looks, but I'm a weirdo lol
Rest of the world: We're deprecating C++ due to lack of memory safety. Please consider doing something for safety.
C++ commite: Here's a new convenient operator to make it easier to do a potentially unsafe, multi-level pointer dereference.
Please don't give them ideas
note that the -- ->
operator is different than --->
I pray for this to be real because it's the perfect syntactic sugar for C++. The kind that you'd think makes sense if you didn't have to write C++ for anything more complex than a high school project.
Right? Every C++ feature needs to be lightly cursed.
New feature with terrible syntax. There are features of every language I choose not to use. As a C++ developer, I would choose not to use this syntax, so that my team can write better designed code. However, I am an oddball on my team for loving trailing return types. In peer review, the schlong operator i.e. --->
would only be used where it makes sense which should be nowhere.
Peer reviewing this seriously would require knowing more context. Instinct tells me MyClass****
is probably allocated from the heap. A possible reason for so many levels of indirection are jagged arrays. Maybe the function only gets the first element of each level of the arrays. The function name doesn't make that clear. This is poorly designed. Please re-design/re-write. I will happily review those changes. I expect unit tests to show example use cases.
I would suggest using a stack allocated array with sentinels for missing values to improve cache coherency. Without context, I assume looping over the jagged structure will be common. Loading more into cache should improve efficiency in loops, but benchmarks are required.
Wait... I should join the crowd. So I say, "down with C++" and up with some safe alternative. Maybe rust: https://github.com/Speykious/cve-rs.
Best i can imagine, this is what happens if you are terrified of smart pointers, but also want to make all object pointers scope specific. So at every layer of hierarchy, you have a unique reference to some partial implementation above and below it.
Honestly I struggle to imagine any real scenario where this would make sense... except maybe like some kind of insane recursive factory.
C++ is a joke.
TIHI
Programmer Humor
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
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics