泛型推导限制

类型 var Ttypedesc [T] 不能在泛型实例中推断出来。以下是不允许的:

  1. proc g[T](f: proc(x: T); x: T) =
  2. f(x)
  3.  
  4. proc c(y: int) = echo y
  5. proc v(y: var int) =
  6. y += 100
  7. var i: int
  8.  
  9. # 允许:推断 'T' 为 'int' 类型
  10. g(c, 42)
  11.  
  12. # 无效:'T'不推断为'var int'类型
  13. g(v, i)
  14.  
  15. # 也不允许:通过'var int'进行显式实例化
  16. g[var int](v, i)