Skip to content

Add forwarders.hxx: per-member forwarder-base template and its combinator (11/20) - #111

Draft
jbcoe wants to merge 1 commit into
reflection/09-conformancefrom
reflection/10-forwarders
Draft

Add forwarders.hxx: per-member forwarder-base template and its combinator (11/20)#111
jbcoe wants to merge 1 commit into
reflection/09-conformancefrom
reflection/10-forwarders

Conversation

@jbcoe

@jbcoe jbcoe commented Jul 27, 2026

Copy link
Copy Markdown
Owner

forwarder_base synthesizes a one-member base struct per interface
member, generalizing tutorials/2_vanishing_this_pointer.cc's
hand-written GreetBase/ShoutBase/Owner pattern; forwarders<Bases...>
combines an arbitrary list of them via multiple inheritance. Disables
LTO on the new test target, since GCC 16 trunk can't stream
std::meta::info-typed constants through it.

@jbcoe jbcoe changed the title Add forwarders.hxx: per-member forwarder-base template and its combinator Add forwarders.hxx: per-member forwarder-base template and its combinator (11/20) Jul 27, 2026
@jbcoe
jbcoe force-pushed the reflection/09-conformance branch from 00601b9 to cd42524 Compare July 28, 2026 11:33
@jbcoe
jbcoe force-pushed the reflection/10-forwarders branch from 7f3d8aa to d5fa597 Compare July 28, 2026 11:33
@jbcoe
jbcoe force-pushed the reflection/09-conformance branch from cd42524 to 5fb8419 Compare July 28, 2026 14:22
@jbcoe
jbcoe force-pushed the reflection/10-forwarders branch from d5fa597 to 114a724 Compare July 28, 2026 14:22
@jbcoe
jbcoe force-pushed the reflection/09-conformance branch from 5fb8419 to 69baff0 Compare July 28, 2026 14:29
@jbcoe
jbcoe force-pushed the reflection/10-forwarders branch from 114a724 to d9560d1 Compare July 28, 2026 14:29
@jbcoe
jbcoe force-pushed the reflection/09-conformance branch from 69baff0 to a29c031 Compare July 28, 2026 15:14
@jbcoe
jbcoe force-pushed the reflection/10-forwarders branch from d9560d1 to d80ea3b Compare July 28, 2026 15:14
@jbcoe
jbcoe force-pushed the reflection/09-conformance branch from a29c031 to 6c5675c Compare July 28, 2026 15:28
@jbcoe
jbcoe force-pushed the reflection/10-forwarders branch from d80ea3b to 75653d3 Compare July 28, 2026 15:28
@jbcoe
jbcoe force-pushed the reflection/09-conformance branch from 6c5675c to 92f7a27 Compare July 28, 2026 18:27
@jbcoe
jbcoe force-pushed the reflection/10-forwarders branch from 75653d3 to d309744 Compare July 28, 2026 18:27
@jbcoe
jbcoe force-pushed the reflection/09-conformance branch from 92f7a27 to 60c55e0 Compare July 28, 2026 19:37
@jbcoe
jbcoe force-pushed the reflection/10-forwarders branch from d309744 to ef35579 Compare July 28, 2026 19:37
@jbcoe
jbcoe force-pushed the reflection/09-conformance branch from 60c55e0 to 9cdc20c Compare July 28, 2026 20:23
@jbcoe
jbcoe force-pushed the reflection/10-forwarders branch from ef35579 to 2c2a893 Compare July 28, 2026 20:23
@jbcoe
jbcoe force-pushed the reflection/09-conformance branch from 9cdc20c to cf29086 Compare July 29, 2026 09:48
@jbcoe
jbcoe force-pushed the reflection/10-forwarders branch from 2c2a893 to e20d572 Compare July 29, 2026 09:48
…ator

forwarder_base synthesizes a one-member base struct per interface
member, generalizing tutorials/2_vanishing_this_pointer.cc's
hand-written GreetBase/ShoutBase/Owner pattern; forwarders<Bases...>
combines an arbitrary list of them via multiple inheritance. Disables
LTO on the new test target, since GCC 16 trunk can't stream
std::meta::info-typed constants through it.
@jbcoe
jbcoe force-pushed the reflection/09-conformance branch from cf29086 to 34f3394 Compare July 29, 2026 10:14
@jbcoe
jbcoe force-pushed the reflection/10-forwarders branch from e20d572 to edf1316 Compare July 29, 2026 10:14
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.

1 participant