Должен признать, я был не прав. Смотрим: http://ru.wikipedia.org/wiki/Си_(язык_программирования) . Читаем про С99. Вообщем вот. Соответственно VS2005, которой я пользуюсь, ничего из этого и не поддерживает. Будем надеяться что в 2008-й внесены изменения
мда, ну что ещё сказать. но все-таки скажу. речь идет об объявлении переменных до ПЕРВОГО ЛЮБОГО выполненого оператора, а не объявлении переменных до оператора, их ИСПОЛЬЗУЮЩЕГО. второй случай - вообще некорректен вообще для всех языков. Это обязательное правило С, во всяком случае его первого стандарта. Только не программы, а ф-ии. А в любом месте она может быть объявлена в С++. У каждого правила "хорошего тона" есть объяснение, почему оно хорошее, а другое не хорошее. Какое объяснение у этого "правила" ? Я не вижу ничего удобного или эффективного в том, что бы нелогично намешать все обьявления в начале, особенно, если у тебя сотни переменных, а после этого будет стоять сразу же if (!param) return;. и ещё, советую юзать g++ а не gcc Forcer, а ты используй MinGW
Потому что на некоторых системах (наверное старые версии) gcc не понимает .cpp и компилирует их как .c - код. Поэтому проще сразу g++ использовать, что бы не было проблем.
gcc по умолчанию не подключает стандартную библиотеку C++. Во всяком случае старые версии. Так попробуй: Code: gcc -o test test.cpp -lstdc++ кстати, у gcc получается меньший размер бинарника.