"debolmente digitato" è un termine piuttosto soggettivo. Io preferisco i termini "strettamente digitati" e "tipizzazione statica" vs. "debolmente tipizzato" e "dinamicamente tipizzati", perché sono le parole più obiettiva e più preciso.
Da quello che posso dire, le persone usano generalmente "debolmente tipizzato" come termine diminutivo-peggiorativo che significa "Non mi piace la nozione di tipi in questa lingua". È una sorta di argumentum ad hominem (o meglio, argumentum ad linguam) per coloro che non possono portare argomenti professionali o tecnici contro una particolare lingua.
Il termine "tipizzato rigorosamente" ha anche interpretazioni leggermente diverse; il significato generalmente accettato, secondo la mia esperienza, è "il compilatore genera errori se i tipi non coincidono". Un'altra interpretazione è che "non ci sono o poche conversioni implicite". In base a ciò, il C++ può effettivamente essere considerato un linguaggio tipizzato rigorosamente e molto spesso viene considerato come tale. Direi che il consenso generale su C++ è che è un un linguaggio tipamente scritto.
Ovviamente potremmo provare un approccio più sfumato alla domanda e dire che alcune parti del linguaggio sono tipizzate rigorosamente (questa è la maggior parte dei casi), altre parti sono digitate in modo approssimativo (alcune conversioni implicite, ad esempio le conversioni aritmetiche e i quattro tipi di conversione esplicita).
Inoltre, ci sono alcuni programmatori, in particolare i principianti che non hanno familiarità con più di alcune lingue, che non intendono o non possono fare la distinzione tra "strict" e "static", "loose" e "dinamico" e confondono i due concetti, altrimenti ortogonali, in base alla loro limitata esperienza (di solito la correlazione tra dinamismo e digitazione libera nei linguaggi di scripting popolari, ad esempio).
In realtà, parti di C++ (chiamate virtuali) impongono il requisito che il sistema di tipi sia parzialmente dinamico, ma altre cose nello standard richiedono che sia rigoroso. Di nuovo, questo non è un problema, poiché questi sono concetti ortogonali.
Per riassumere: probabilmente nessuna lingua corrisponde allo completamente, perfettamente in una categoria o in un'altra, ma possiamo dire quale proprietà particolare di una determinata lingua domina. In C++, la rigidità sicuramente domina.
Se si programma in Haskell, si impara come il C++ è tipicamente debolmente digitato! ;-) – Claudix
C++ non è stato digitato debolmente, ma è possibile sovvertire il sistema di tipi se lo si desidera. Quindi si potrebbe sostenere che non è completamente tipizzato. – juanchopanza
.. e se lo consente (digitare la punzione è complicato) –