Szerintem a C++ nem gyengén tipusos, inkább pragmatikus, de statikusan tipusos.
Ja, és a tipusokat nem mindig kell kiírni, attól még nem lesz gyengén típusos.
Pl.
std::list container;
auto iter = container.begin();
Itt nem irtuk ki a tipust, iter tipusa pedig std::list::iterator lesz.
Viszont:
int a = 12;
iter = a; // compile error