Почему определения типов не являются строго типизированными?

В чем причина того, что typedefs не являются строго типизированными? Есть ли какие-то преимущества, которые я не вижу, или это связано с обратной совместимостью? См. Этот пример:

typedef int Velocity;
void foo(Velocity v) {
    //do anything;
}
int main() {
    int i=4;
    foo(i); //Should result in compile error if strongly typed.
    return 0;
}

Я не прошу обходных путей для получения строго типизированного типа данных, а только хочу знать, почему стандарт не требует строгой типизации typedef ?

Спасибо.

6
задан halex 18 November 2011 в 13:09
поделиться