Scala严格类型系统与C ++类型系统

时间:2011-04-05 05:52:43

标签: c++ scala c++11 meta type-safety

对于 Scala 的严格类型系统的粉丝,但 C ++ 的粉丝:

  • 是否有可能强迫自己以相同的严格程度编写 C ++ ? (不是使用void*,不是很多,拳击简单值类型,即struct Month {int value;};)。
  • 默认情况下是C ++甚至更严格然后是Scala(如果你不努力使用强制转换)?尽管C ++模板的“鸭子打字” - 如果它不适合它仍然不会让你编译,对吗?
  • C ++ 0x(wrt to C ++ 03)是否为愿意提交完全类型安全编程的人添加

2 个答案:

答案 0 :(得分:6)

简短回答:是的,您可以达到相同级别的类型安全性,但这会给程序员带来负担。这不仅仅是提供相同安全性的问题,类型系统还必须足够强大和灵活,以促进类型安全编程,在这方面,Scalas类型系统优于C ++。

C ++ 0x将添加lambda表达式,这将有助于使用HOF,如map,filter,flatMap等。

答案 1 :(得分:-4)

C ++类型系统比Scala更严格。

  1. 没有类型擦除(即使是模板化代码)。
  2. 理想情况下,C ++中没有类型转换(如果使用直接转换,如dynamic_cast,static_cast,C风格转换,你会因为糟糕的设计而受到指责。这些被认为是最后的低级工具。)。