Skip to content

LWG parts of P2996R13 Reflection for C++26 #8004

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Eisenwave
Copy link
Member

Closes #7930 once the core part is also complete.
Also closes cplusplus/papers#1668.

@jensmaurer
Copy link
Member

jensmaurer commented Jun 24, 2025

Forward-looking comment for the library part:

The section labels for the library should be "meta.refl.*" (because shorter without loss of expression) and for the <meta> header, it should be "meta.syn" (because globally consistent where we did not screw up).

Also, "define_aggregate" could maybe become "def.aggr".

@Eisenwave Eisenwave force-pushed the motions-2025-06-cwg-4 branch 2 times, most recently from b89923b to e87c239 Compare June 24, 2025 08:36
Comment on lines +2582 to +2583
%FIXME: I see the same in <algorithm> with a // see \ref{initializer.list.syn} comment
#include <initializer_list>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should add // see \ref{initializer.list.syn} for consistency. Currently, such comment is added whenever <initializer_list> is included in the synopsis.

@Eisenwave Eisenwave force-pushed the motions-2025-06-cwg-4 branch 2 times, most recently from b0fb1eb to 8b92b03 Compare June 24, 2025 10:39
@Eisenwave Eisenwave changed the title P2996R13 Reflection for C++26 LWG parts of P2996R13 Reflection for C++26 Jun 24, 2025
@Eisenwave Eisenwave force-pushed the motions-2025-06-cwg-4 branch from 8b92b03 to a13cfe0 Compare June 24, 2025 10:44
@tkoeppe
Copy link
Contributor

tkoeppe commented Jun 24, 2025

@Eisenwave Do you already want review feedback, or is this still in "draft"?

@Eisenwave
Copy link
Member Author

Eisenwave commented Jun 24, 2025

@tkoeppe you can at FIXMEs and TODOs where I'm unsure how to proceed and give me feedback on those; it's not ready for a full review though. I will progress more towards the end of the week on this.

There's also #7987 if you want to sink a few hours or days into reviewing a PR.

@tkoeppe
Copy link
Contributor

tkoeppe commented Jun 24, 2025

Thanks!

@Eisenwave Eisenwave force-pushed the motions-2025-06-cwg-4 branch 2 times, most recently from 0579faf to 5c723b4 Compare June 25, 2025 14:37
@Eisenwave
Copy link
Member Author

Eisenwave commented Jun 25, 2025

Hmm, it has occurred to me that this is a pretty big change.

Everybody expected it and no one is surprised, but when you're 2000 3000+ lines into the diff, it really sinks in ...

@Eisenwave Eisenwave force-pushed the motions-2025-06-cwg-4 branch 3 times, most recently from 8846eea to ec34c7e Compare June 25, 2025 20:13
@katzdm
Copy link

katzdm commented Jun 25, 2025

2000 3000+

I was gonna point it out if you didn't..

@Eisenwave Eisenwave force-pushed the motions-2025-06-cwg-4 branch 4 times, most recently from e623bbe to 306262f Compare June 27, 2025 09:17
@Eisenwave

This comment was marked as resolved.

@Eisenwave Eisenwave force-pushed the motions-2025-06-cwg-4 branch 2 times, most recently from 7363bba to 659f74d Compare June 27, 2025 10:22
@jensmaurer
Copy link
Member

You need to use \caret for ^ in "usual" source. You can use "^" in codeblocks with no problem.

@jensmaurer
Copy link
Member

meta.reflection.operators: Any details we could help with?

@Eisenwave
Copy link
Member Author

Eisenwave commented Jun 27, 2025

You need to use \caret for ^ in "usual" source.

Good to know.

You can use "^" in codeblocks with no problem.

No, you cannot. Single carets are fine, but two carets are being treated as a Unicode escape or something, and they seem to have special meaning even inside our codeblock environment. Not sure how to address that.

meta.reflection.operators: Any details we could help with?

No, I got that table to work. The table renders, but it gets put on a separate page, and I'm probably just using the wrong table environment. Not sure which one to pick here.

Anyhow, I'm going to do a linear read-through and fix any obvious mistakes, and then mark this as ready-for-review.

@jensmaurer
Copy link
Member

You can use "^" in codeblocks with no problem.

No, you cannot.

Well, there are plenty of uses of ^^ inside codeblocks here, and they work just fine:

https://github.com/cplusplus/draft/pull/8008/files

However, the codeblock environment kicks back into "regular" mode in code comments, so you need to use \caret\caret inside comments.

@Eisenwave Eisenwave force-pushed the motions-2025-06-cwg-4 branch from 659f74d to 3141300 Compare June 27, 2025 15:14
@Eisenwave
Copy link
Member Author

Eisenwave commented Jun 27, 2025

Well, there are plenty of uses of ^^ inside codeblocks here, and they work just fine:

You're right. I think I've had some unbalanced \begin and \end, and it miraculously broke nothing other than double carets, or maybe that's just the first thing that broke. I don't know.

Anyhow, the PR is now ready for review. I have not fixed anything up because I'm under the impression that will only make things harder to review during the first pass.

There are 59 FIXMEs to resolve.

@Eisenwave Eisenwave marked this pull request as ready for review June 27, 2025 15:15
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[2025-06 CWG Motion 4] P2996R13 Reflection for C++26 P2996 R12 Reflection for C++26
5 participants