Все компиляторы Я попытался правильно отклонить код
int main() {
int x = "foo";
}
с ошибкой типа: const char[4]
не может быть преобразован в int
. Почему одни и те же компиляторы (включая Ideone.com) дают ту же ошибку для
int main() {
int x = + "foo";
}
вместо (как я думал) синтаксической ошибки из-за знака +
? Моя первая идея заключалась в том, что const char[4]
распадается на указатель, который, в свою очередь, рассматривается как целое значение, поэтому +
обозначает "положительный". Кажется немного надуманным, хотя, и я бы ожидал увидеть const char*
в сообщении об ошибке.