this post was submitted on 09 May 2026
72 points (91.9% liked)

Programming

26913 readers
291 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS
 

aka "bros: in order to be rich, just don't be poor."

you are viewing a single comment's thread
view the rest of the comments
[–] TehPers@beehaw.org 5 points 4 days ago (1 children)

The memory leaks section just feels like an introduction to smart pointers as though they're some complex concept. Also, the page is showing its age by mentioning the now-removed auto_ptr instead of something like unique_ptr.

Anyway, scrolling down a little more:

Why can't I assign a vector<Apple*> to a vector<Fruit*>?

This actually comes up in C# with arrays. Copying their example here:

object[] array = new String[10];
// The following statement produces a run-time exception.
// array[0] = 10;

It may have been a design mistake not to make C#'s arrays invariant, though I don't know the state of that debate today.

[–] tabular@lemmy.world 1 points 3 days ago (1 children)
[–] gedhrel@lemmy.world 1 points 3 days ago (1 children)

Neither covariant nor contravariant.

supertype[] is not a supertype of subtype[] if supertype and subtype alone are in that relationship, because the mutability of arrays means that the Liskov substitution principle doesn't hold.

(These are all something you'll probably find good explanations of on Wikipedia.)

[–] tabular@lemmy.world 1 points 3 days ago

Thank you for your reply. Sadly I don't know terms like covariant or supertype either 😅 so I'll have to look into all that when/if it comes up. I write in GDScript for fun (a game engine's high-level scripting language said to have syntax similar to Python).