Avatar
norio_nomura 8/3/2019 4:07 AM
Class Existential Container が Witness Table を保持するのはなぜかって疑問。
これ、今更だけど、 https://github.com/apple/swift/blob/master/docs/ABI/TypeLayout.rst#class-existential-containers
Note that if no witness tables are needed, such as for the "any class" type protocol<class> or an Objective-C protocol type, then the only element of the layout is the heap object pointer.
って注意書きがあるね。プロトコル制約がある時だけwitness tablesを持つ。
(edited)
The Swift Programming Language. Contribute to apple/swift development by creating an account on GitHub.
4:08 AM
指定してるプロトコル制約が、指定したクラスが準拠してるプロトコル全てと同一でない場合は、別途witness tableを持つしかない、という当然の帰結になるのでは。
4:08 AM
速度とか関係なく。 (edited)