extension Foo: ExampleCompatible { public var ex: Example<Foo> { return Example(self) } } extension Example where Base == Foo { public var ab: Int { return base.a + base.b } }
Example<T>
が値を保持してるのを参照にしなきゃいけないし。 @nonescaping
的な、即時解放されることが保証されてればコピー省略できるのかなぁ。