这个问题是关于编译器内部的。
考虑像C ++或D这样具有const
类型概念的语言。例如,可以写:
const Foo a = ...; // a is of type "const Foo"
Foo b = ...;
我感兴趣的是绑定到一个类型 - 它是如何完成的?
现在我只能想(抱歉疯狂的业余创意) - 将整个类型树加倍,为每个类型T
制作它的const双胞胎并将其作为父级。另一种方法是像往常一样绑定(就像没有这种区别的语言一样),但是如果绑定本身是否适用于const
类型,那么使绑定更加丰富。
但它是如何解决的呢?