5

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

  • 是否可以强迫自己以同样严格的方式编写 C++程序?(不使用void*,不铸造很多,装箱简单值类型即struct Month {int value;};)。
  • 还是默认情况下 C++ 比Scala 更严格(如果你不努力使用强制转换)?尽管 C++ 模板的“鸭子类型”——如果它不合适,它仍然不会让你编译,对吧?
  • C++0x (wrt to C++03) 是否为愿意接受完全类型安全编程的人添加了一些东西?
4

2 回答 2

6

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

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

于 2011-04-05T07:35:52.480 回答
-4

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

  1. 没有类型擦除(即使在模板代码中)。
  2. 理想情况下,C++ 中没有类型转换(如果您使用 C 风格转换的 dynamic_cast、static_cast 等直接转换,您将被归咎于糟糕的设计。这些被认为是最后的低级工具。)。
于 2011-04-05T06:04:38.903 回答