this post was submitted on 24 Sep 2024
122 points (94.2% liked)

Programmer Humor

19564 readers
1409 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
 

Source

Alt text:A screenshot from the linked article titled "Reflection in C++26", showing reflection as one of the bullet points listed in the "Core Language" section

you are viewing a single comment's thread
view the rest of the comments
[โ€“] Zangoose@lemmy.world 8 points 1 month ago (1 children)

It's pretty cool when you use it right but it's also really easy to shoot yourself in the foot with, even by C++ standards. For example, in other languages (I'm coming from Java/C# which both have it) it lets you access private/protected fields and methods when you normally wouldn't be able to.

There's also a noticeable performance penalty over large lists because you're searching for the field with a string instead of directly accessing it.

For the times it is necessary (usually serialization-adjacent or dynamic filtering/sorting in a table) to use reflection, it's faster at runtime than converting an object to a dictionary/hashmap. However, 99% of time it's a bad call.

[โ€“] BatmanAoD@programming.dev 9 points 1 month ago

If you look at the proposal, this is specifically "static reflection", i.e. compile-time reflection. So it doesn't actually have any of the downsides you mention, as far as I can tell.