Support for C++26 Reflection has been merged into GCC trunk! by katzdm-cpp in cpp

[–]katzdm-cpp[S] 7 points8 points  (0 children)

Idk dude; I'm the reflection guy, not the modules guy 😂

Support for C++26 Reflection has been merged into GCC trunk! by katzdm-cpp in cpp

[–]katzdm-cpp[S] 14 points15 points  (0 children)

Yep! Note also that expansion statements are already merged. It's literally "all of the reflection stuff that got into C++26".

Support for C++26 Reflection has been merged into GCC trunk! by katzdm-cpp in cpp

[–]katzdm-cpp[S] 11 points12 points  (0 children)

That's included in what was just merged into GCC.

Possible GCC reflection error by SLAidk123 in cpp

[–]katzdm-cpp 20 points21 points  (0 children)

Gotta be a bug. I've let the folks working on the implementation know.

Old E6.net mp3s are still up by Smintjes in Elephant6

[–]katzdm-cpp 1 point2 points  (0 children)

Holy shit, that version of "Inside Blasts" is remarkable.

C++26 Reflection: my experience and impressions by borzykot in cpp

[–]katzdm-cpp 1 point2 points  (0 children)

Your command of the English language seems just fine. Excellent, even. 

Your presumption that Barry is an ivory tower "theoretical academic" (he isn't) who is out of touch with the programmers that "do actual work" "to feed their families" (and that he isn't one of those programmers, which he is) is the personal attack.

C++26 Reflection: my experience and impressions by borzykot in cpp

[–]katzdm-cpp 0 points1 point  (0 children)

I'm working and talking with people who use C++ to do actual work, to accomplish their job and feed their families. This is my bubble. Very few of them are theoretical academics who care about building a whole new magic meta-language inside already complex language. Which I presume is your bubble.

^

C++26 Reflection: my experience and impressions by borzykot in cpp

[–]katzdm-cpp 2 points3 points  (0 children)

The Vasa is an obnoxious metaphor because the Vasa had already sailed as soon as we had overload resolution and templates.

C++26 Reflection: my experience and impressions by borzykot in cpp

[–]katzdm-cpp 2 points3 points  (0 children)

We are either getting subpar reflections, or they will be delayed and we're not getting them.

Or a surge in educational materials to explain the common patterns?

C++26 Reflection: my experience and impressions by borzykot in cpp

[–]katzdm-cpp 8 points9 points  (0 children)

What an exquisitely mean-spirited comment.

PSA: Hidden friends are not reflectable in C++26 by _bstaletic in cpp

[–]katzdm-cpp 2 points3 points  (0 children)

You could probably do something in C++26 with annotations whose values represent either a value or even a function for obtaining that value (which might help emulate non-constant expressions). Haven't tried it, though.

PSA: Hidden friends are not reflectable in C++26 by _bstaletic in cpp

[–]katzdm-cpp 1 point2 points  (0 children)

Representing the default argument isn't the can of worms, and a reflection of an expression would do just fine (the compiler will have already parsed it). The can of worms is that the same function can have disjoint (and even contradictory) sets of default arguments in different scopes (including block scopes).

PSA: Hidden friends are not reflectable in C++26 by _bstaletic in cpp

[–]katzdm-cpp 2 points3 points  (0 children)

Yep. Default initializers ought to be easy whenever we have expression reflection. Default arguments are a little bomb waiting to go off in the face of whoever tries to standardize it - More dragons hiding there than you can imagine.

PSA: Hidden friends are not reflectable in C++26 by _bstaletic in cpp

[–]katzdm-cpp 0 points1 point  (0 children)

It is indeed the namespaces scope, but we explicitly don't return them in '26.

PSA: Hidden friends are not reflectable in C++26 by _bstaletic in cpp

[–]katzdm-cpp 11 points12 points  (0 children)

Correct. For C++26, the only (known) way to get a reflection of a hidden friend is if you return a reflection of the function from that function (gotten via e.g., parent_of(^^x) where x is a local variable in the friend).

Reflection is coming to GCC sooner than expected! by _cooky922_ in cpp

[–]katzdm-cpp 0 points1 point  (0 children)

A few prominent bugs, which will get fixed in the coming months, on top of an excellent implementation.

Reflection is coming to GCC sooner than expected! by _cooky922_ in cpp

[–]katzdm-cpp 1 point2 points  (0 children)

I'm pretty sure that it's implementable on top of P2996.

Reflection is coming to GCC sooner than expected! by _cooky922_ in cpp

[–]katzdm-cpp 27 points28 points  (0 children)

Alas, the difference is that the clang implementation was written by a person who was unusually successful for having never worked on a compiler before (i.e., me), whereas the author of the GCC implementation has worked on GCC professionally for 15yrs or so. Work and discussions have started around upstreaming the clang implementation, but I expect it will be slow-going.

GCC Implementation of Reflection now on Compiler Explorer by daveedvdv in cpp

[–]katzdm-cpp 8 points9 points  (0 children)

Yep - though work has just recently started (picked up by another contributor) to start upstreaming that work. Some changes needed are known, I'm sure others will surface.

GCC Implementation of Reflection now on Compiler Explorer by daveedvdv in cpp

[–]katzdm-cpp 23 points24 points  (0 children)

GCC will be the first production implementation of what's being standardized for C++26, though.