¿Cuál es la razón por la que typedefs
no está fuertemente tipado? ¿Hay algún beneficio que no puedo ver o es debido a la compatibilidad con versiones anteriores? Vea este ejemplo:¿Por qué no se escribe fuertemente 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;
}
yo no estoy pidiendo soluciones para conseguir un fuerte tipo de datos con tipo, pero sólo quiero saber por qué la norma no está requiriendo typedefs
ser inflexible?
Gracias.
Porque C es un lenguaje para las personas que quieren obtener cosas hechas, no para las personas que desean reflexionar sobre la belleza matemática de los sistemas de tipo abstracto. (Como alguien que aprecia ambas actividades, no estoy juzgando ninguna). –
@Stephen Canon: ¿Quién dice que los Sistemas de tipo abstracto no pueden ayudarte a hacer las cosas? La depuración de errores de tiempo de ejecución que resultan de tipos accidentalmente mal utilizados ciertamente no cuenta como Getting Things Done en mi libro. –
@MichaelBorgwardt: Ciertamente no dije que no pueden. Sin embargo, * pueden * ser abusados. –