<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Have you looked at how this is handled in Kotlin?</div><div class="">Imho Jetbrains solution is quite elegant — especially as it also has a natural answer to another problem ("f<span style="font-family: 'Helvetica Neue';" class="">lexible memberwise initialization"; the whole init process is only a short chapter in the docs).</span></div><div class="">Of course, their approach is different, but I'd rather copy from the best than accept mediocrity because of the not invented here syndrome.</div><div class=""><br class=""></div><div class="">[short explanation: In Kotlin, we would have</div><div class="">class Forwarder(forwardee: Forwardee): P by forwardee {</div><div class="">…</div><div class="">}</div><div class="">forwardee would be available as a member, and because it is introduced before the protocol conformance, it can be used there without irritation.</div><div class="">Bonus: The designated initializer is defined at the same time.</div><div class="">]</div><div class=""><br class=""></div>As for the implementation:<div class="">Why not simply make this feature syntactic sugar and just auto-generate the forwarding methods?</div></body></html>