Według standardu C++ ciąg typ dosłowny jest array of const char
C++ const poprawności z napisowych
auto constStr = "aaa";
char* nonConstStr = constStr; //Error here, cannot convert from 'const char *' to 'char *'
char* stillNonConstStr = "aaa"; //Why I don't have error here?
Czy możesz mi wyjaśnić, dlaczego na 3 linii I nie pojawia się błąd?
@Rapptz Nie mogę znaleźć takiej samej klauzuli zezwalającej na taką samą "wsteczną kompatybilność" w standardzie C++ 11. Sądzę, że został usunięty, więc powiązane pytanie nie jest obecnie duplikatem. – Angew
Ponieważ lepiej jest pozwolić na to, ponieważ historycznie zostało to dozwolone, niż rozbicie tysięcy istniejących programów. –
@Rapptz Jak jest pytanie + odpowiedź na temat C duplikatu jednego o C++? Zwłaszcza w obszarze, w którym oba języki faktycznie się różnią. – Angew