Avatar
ライブラリ外から呼んでも specialize されますよね?
呼び出し側をコンパイルするときはそうですが、この場合呼び出し側であるエンコーダーをコンパイルするときには何も分からないし、func encode をコンパイルするときに encoder が JSONEncoder であるか否かはわからない。
(edited)
3:01 AM
@_specialize(where T == JSONEncoder) func encode<T : Encoder>(to encoder: T) throws { ... } ってしとけばいいかもしれないけど、使っちゃ駄目