Skip to content

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

New issue

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

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

Already on GitHub? Sign in 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in 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