Jaki jest powód, dla którego typedefs
nie jest silnie wpisany? Czy są jakieś zalety, których nie widzę, czy jest to spowodowane kompatybilnością wsteczną? Zobacz poniższy przykład:Dlaczego typedefs nie jest silnie wpisany?
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;
}
Nie pytam dla obejścia, aby uzyskać silny typ danych wpisywanych ale tylko chcę wiedzieć, dlaczego średnia nie jest wymagająca typedefs
być silnie wpisane?
Dziękuję.
Ponieważ C jest językiem dla ludzi, którzy chcą osiągnąć cel, a nie dla ludzi, którzy chcą zastanowić się nad matematycznym pięknem abstrakcyjnych systemów typów. (Jako ktoś, kto docenia obie te czynności, nie oceniam żadnego z nich). –
@Stephen Canon: Kto powiedział, że systemy typu abstrakcyjnego nie mogą Ci pomóc w osiągnięciu celu? Debugowanie błędów runtime, które wynikają z przypadkowo niewłaściwie używanych typów, z pewnością nie liczy się jako Getting Things Done w mojej książce. –
@MichaelBorgwardt: Na pewno nie powiedziałem, że nie mogą. Jednak * mogą * być wykorzystywane. –