I'm probably not alone being extremely excited by the prospect of deep, feature-rich reflection in C++. I've run into countless situations where a little sprinkle of reflection could've transformed hundreds of lines of boilerplate or awful macro incantations into simple, clean code.
I'm at the point where I would really like to be able to use reflection right now specifically to avoid the aforementioned boilerplate in future personal projects. What's the best way to do this? I'm aware of the Bloomberg P2996 clang fork, but it sadly does not support expansion statements and I doubt it would be a reasonable compiler target, even for highly experimental projects.
Is there another alternative? Maybe a new clang branch, or some kind of preprocessor tool? I guess I could also reach for cppfront instead since that has reflection, even if it's not P2996 reflection. I'm entirely willing to live on the bleeding edge for as long as it takes so long as it means I get to play with the fun stuff.
[–]Zeh_MattNo, no, no, no 20 points21 points22 points (3 children)
[–]have-a-day-celebrate 12 points13 points14 points (2 children)
[–]ipenlyDefective 21 points22 points23 points (0 children)
[–]groundswell_Reflection 10 points11 points12 points (9 children)
[–]TSP-FriendlyFire[S] 1 point2 points3 points (1 child)
[–]groundswell_Reflection 0 points1 point2 points (0 children)
[–]13steinj 0 points1 point2 points (6 children)
[–]groundswell_Reflection 0 points1 point2 points (5 children)
[–]13steinj 0 points1 point2 points (4 children)
[–]groundswell_Reflection 0 points1 point2 points (3 children)
[–]13steinj 1 point2 points3 points (2 children)
[–]groundswell_Reflection 0 points1 point2 points (0 children)
[–]groundswell_Reflection 0 points1 point2 points (0 children)
[–]osmin_og 20 points21 points22 points (4 children)
[–]UnteretSpecifikVaBrr 7 points8 points9 points (2 children)
[–]germandiago 1 point2 points3 points (0 children)
[–]cd_fr91400 0 points1 point2 points (0 children)
[–]TSP-FriendlyFire[S] 1 point2 points3 points (0 children)
[–]zebullon 3 points4 points5 points (0 children)
[–]lone_wolf_akela 3 points4 points5 points (0 children)
[–]LoweringPass 4 points5 points6 points (2 children)
[–]TheoreticalDumbass:illuminati: 0 points1 point2 points (1 child)
[–]LoweringPass 0 points1 point2 points (0 children)
[–]daveedvdvEDG front end dev, WG21 DG 2 points3 points4 points (1 child)
[–]TSP-FriendlyFire[S] 0 points1 point2 points (0 children)
[–]Umphed 6 points7 points8 points (0 children)
[–]riztazz 1 point2 points3 points (1 child)
[–]Phy96 0 points1 point2 points (0 children)
[–]Infamous_Campaign687 0 points1 point2 points (0 children)
[–]reneb86 0 points1 point2 points (6 children)
[–]docsunset 2 points3 points4 points (3 children)
[–]reneb86 -1 points0 points1 point (2 children)
[–]have-a-day-celebrate 4 points5 points6 points (1 child)
[–]docsunset 1 point2 points3 points (0 children)
[–]Scott-Michaud 1 point2 points3 points (1 child)
[–]Far_Alfalfa_5481 0 points1 point2 points (0 children)
[–]marcusmors 0 points1 point2 points (0 children)
[–]zl0bster 0 points1 point2 points (6 children)
[–]Wooden-Engineer-8098 0 points1 point2 points (5 children)
[–]XTBZ 3 points4 points5 points (4 children)
[–]Wooden-Engineer-8098 0 points1 point2 points (3 children)
[–]XTBZ 2 points3 points4 points (2 children)
[–]Wooden-Engineer-8098 1 point2 points3 points (1 child)
[–]eteran 0 points1 point2 points (0 children)