Type system and value categories

这是一个非常非常复杂的领域,涉及逻辑,类型论,范畴论。哪怕在熟练使用c++之后,我依旧弄不清楚c++为什么在类型和值上弄得这么复杂,但在学了PL之后,似乎可以开始理解了。

直观的理解,c++是多了面向对象的c,但不同于其他高级语言c++没有剥夺语言的灵活性,这导致了我们必须引入非常多的类型和值,来同时保证抽象和灵活。