Non credo che sia possibile evitare completamente i cast in stile C durante la scrittura di C++. Sono stato sorpreso di find out che avevo bisogno di utilizzare un cast C-style per evitare un avviso del compilatore troncamento:È possibile evitare completamente i cast in stile C in C++?
short value_a = 0xF00D; // Truncation warning in VS2008
short value_b = static_cast<short>(0xF00D); // Truncation warning in VS2008
short value_c = (short)0xF00D; // No warning!
ci sono altri scenari in cui non c'è C++ - sostituto di stile per un cast C-style?
'short value_c (0xF00D)' - anche: quale compilatore ti sta fornendo avvisi di troncamento? Il mio GCC è abbastanza intelligente da non trovarsi in tutte e tre le situazioni. –
C++ esegue il cast di copertura per tutti gli usi dell'operatore di cast di C. – wilhelmtell
Per quanto riguarda il linguaggio, in questo caso non c'è differenza tra 'static_cast' e un cast in stile C.Se il compilatore ha deciso di dare un avvertimento che "sono le 3:00 ora locale - dovresti davvero andare a letto", è comunque libero di farlo ... –