For fans of Scala's strict type system, but fans of C++:
void*
, not casting a lot, boxing simple value type ie struct Month {int value;};
).Short answer: yes, you can reach the same level of type safety, but it will place a burden on the programmer. It's not simply a question of providing the same safety, the type system must also be powerful and flexible enough to facilitate typesafe programming and in this regard Scalas type system is superior to C++.
C++0x will add lambda expressions which will facilitate using HOF's like map, filter, flatMap etc.