Страницы

Поиск по вопросам

воскресенье, 8 декабря 2019 г.

C++, более одного объявления в выражении инициализации цикла for

#cpp #for #инициализация #объявление #выражение


Существует ли в C++ способ объявить в выражении инициализации цикла for несколько
переменных разного типа?

Например:

for (size_t s = 0, float f = 0.f; ; ) {}

    


Ответы

Ответ 1



Начиная с С++17 у вас есть вариант с structured binding for (auto [s, f] = std::make_tuple(0, 0.0); ; ) { // Работаем с `s` и `f` } А до появления structured binding были лишь трюки вроде for (struct { size_t s = 0; float f = 0.f; } sf; ; ) { // Работаем с `sf.s` и `sf.f` } или for (struct { size_t s; float f; } sf = { 0 }; ; ) { // Работаем с `sf.s` и `sf.f` } Такой трюк не используется особенно широко, но тем не менее доступен со времен С.

Комментариев нет:

Отправить комментарий