Fatal
написал 9 января 2005 года в 20:59 (4318 просмотров)
Ведет себя
как мужчина; открыл 123 темы в форуме, оставил 484 комментария на сайте.
/*Почему компилятор выдаёт такие ошибки в результате компиляции проги номер один:
main.cc: In function `int main()’:
main.cc:13: error: `a' cannot appear in a constant-expression
main.cc:13: error: `.' cannot appear in a constant-expression
А при втором варианте ошибки не выводятся, что за фигня?
*/
/*
вариант 1, с ошибками компиляции
*/
class A
{
public:
enum {NUMBER};
};
int main()
{
A a;
int i=0;
switch(i)
{
case a.NUMBER:
break;
}
return 0;
}
/*
вариант 2, который не выводит сообщения об ошибках
*/
enum en{N};
int main()
{
int i=0;
en e;
switch(i)
{
case N:
break;
}
return 0;
}
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
Ты будешь смеяться, но твоя первая прога, скопированная мышью в Имакс с твоего поста, компилится на ура.
$ gcc --version
gcc (GCC) 3.3.4
Ты ее копировал один в один?
Good Luck,
UT
причём диким смехом, потому как мне придётся вместо красивого кода, в ручную проставлять значения этого NUMBER :(
[2:01] /home/alek/battleship/tmp> g++ --version
g++ (GCC) 3.4.2 [FreeBSD] 20040728
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
абсолютно в один один, даже попробовал скопировать с форума этот код и всё равно ошибки вылезают
[2:03] /home/alek/battleship/tmp> g++ main.cc
main.cc: In function `int main()’:
main.cc:14: error: `a' cannot appear in a constant-expression
main.cc:14: error: `.' cannot appear in a constant-expression
Да, воспроизвел твою ошибку:
$ /usr/local/gcc-3.4.2/bin/g++ enn.cc -o enn
enn.cc: In function `int main()’:
enn.cc:14: error: `a' cannot appear in a constant-expression
enn.cc:14: error: `.' cannot appear in a constant-expression
$ /usr/local/gcc-3.4.3/bin/g++ enn.cc -o enn
enn.cc: In function `int main()’:
enn.cc:14: error: `a' cannot appear in a constant-expression
enn.cc:14: error: `.' cannot appear in a constant-expression
А g++ из 3.3.4 все проглатывает… Баг, однако. На Гугле можно проследить за обсуждением, а номер бага misc/72307 здесь
http://lists.freebsd.org/pipermail/freebsd-bugs/2004-October/009496.html
Чей-то как-то не торопятся они его исправлять…
Good Luck,
UT
Спасибо! Конечно нужно было бы самому погуглить …