对于Scala的严格类型系统的粉丝,但C++的粉丝:
- 是否可以强迫自己以同样严格的方式编写 C++程序?(不使用
void*
,不铸造很多,装箱简单值类型即struct Month {int value;};
)。 - 还是默认情况下 C++ 比Scala 更严格(如果你不努力使用强制转换)?尽管 C++ 模板的“鸭子类型”——如果它不合适,它仍然不会让你编译,对吧?
- C++0x (wrt to C++03) 是否为愿意接受完全类型安全编程的人添加了一些东西?
对于Scala的严格类型系统的粉丝,但C++的粉丝:
void*
,不铸造很多,装箱简单值类型即struct Month {int value;};
)。简短的回答:是的,您可以达到相同的类型安全级别,但这会给程序员带来负担。这不仅仅是提供相同安全性的问题,类型系统还必须足够强大和灵活以促进类型安全编程,在这方面 Scalas 类型系统优于 C++。
C++0x 将添加 lambda 表达式,这将有助于使用 HOF,如 map、filter、flatMap 等。
C++ 类型系统比 Scala 更严格。