Предупреждение GCC о непреднамеренной арифметике указателей на строковых литералах ⇐ C++
-
Anonymous
Предупреждение GCC о непреднамеренной арифметике указателей на строковых литералах
Постоянно переключаясь между разными языками и переключаясь между ними, время от времени я пытаюсь написать фрагменты синтаксиса Python или JS на C/C++.
Один раз меня застал врасплох — попытка добавить число к строковому литералу с помощью оператора +:
foo(const char*); foo("число " + 6); Который успешно компилируется для передачи указателя char* на строку "mber is " в мою функцию. Еще веселее, если я напишу:
foo("число " + 20); Кто-нибудь знает о опции предупреждения, которая может это отловить?
Постоянно переключаясь между разными языками и переключаясь между ними, время от времени я пытаюсь написать фрагменты синтаксиса Python или JS на C/C++.
Один раз меня застал врасплох — попытка добавить число к строковому литералу с помощью оператора +:
foo(const char*); foo("число " + 6); Который успешно компилируется для передачи указателя char* на строку "mber is " в мою функцию. Еще веселее, если я напишу:
foo("число " + 20); Кто-нибудь знает о опции предупреждения, которая может это отловить?
Мобильная версия