Автор Тема: Объявление переменных разных типов в циклах [C++]  (Прочитано 4833 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн volandlm

  • Прохожий
  • *
  • Автор темы
  • Сообщений: 8
Недавно узнал любопытную вещь, о которой вообще говоря мало кто знает, а уж в реальном коде я такого не встречал вовсе. Речь идёт о возможности объявлять в циклах переменные разных типов. Это безобразие можно сотворить с помощью неименованной структуры:

const long N = VERY_VERY_LONG_VALUE;/*очень_очень_большое значение ;-) */
for( struct {int i; long i2;} x = {1, 1}; x.i2 < N; x.i++, x.i2 = x.i * x.i )
{
  std::cout << x.i2 << std::endl;
}
Если вы пользуетесь компилятором от Microsoft, то вас ждёт разочарование - это не работает в MSVC++. Можно потренироваться в GNU C++ (сам проверял) и в Comeau (а вот это только по слухам).

P.S. Кстати, в качестве VERY_VERY_LONG_VALUE отлично будет смотреться Ответ на главный вопрос жизни, вселенной и всего такого ;-)
« Последнее редактирование: Ноябрь 18, 2010, 11:18:34 от volandlm »
"Машина должна работать, а человек - думать" ("Machines should work; people should think"), IBM.