Generics Swift泛型是否单独编译?

Generics Swift泛型是否单独编译?,generics,swift,Generics,Swift,我想弄清楚泛型是如何工作的。具体来说,我没有找到关于编译模型的精确陈述。在C++中,泛型(模板)不是单独编译的,它们是针对每个调用站点实例化的(至少在原则上)。相反,Java泛型是单独编译的。关于泛型的单独编译,Swift的情况如何?这是两者的结合,取决于优化器决定如何获得更好的性能。他们在周末讨论这个问题。幻灯片上说: Swift可以直接运行通用代码 优化器可以随意生成通用代码的专用版本 泛型的单独编译 更快的编译 以代码大小换取速度的灵活性 语义上,它类似于C++方式。在使用T参数化的S

我想弄清楚泛型是如何工作的。具体来说,我没有找到关于编译模型的精确陈述。在C++中,泛型(模板)不是单独编译的,它们是针对每个调用站点实例化的(至少在原则上)。相反,Java泛型是单独编译的。关于泛型的单独编译,Swift的情况如何?

这是两者的结合,取决于优化器决定如何获得更好的性能。他们在周末讨论这个问题。幻灯片上说:

Swift可以直接运行通用代码

优化器可以随意生成通用代码的专用版本

  • 泛型的单独编译
  • 更快的编译
  • 以代码大小换取速度的灵活性

语义上,它类似于C++方式。在使用
T
参数化的Swift通用函数中,您可以在运行时使用
T
直接访问类似
T.self
的内容。你也可以用C++来做这件事,但不是在java中,在那里泛型只是编译时间和类型被删除。不能更具体一点吗?对不起:)