#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` } Такой трюк не используется особенно широко, но тем не менее доступен со времен С.
Комментариев нет:
Отправить комментарий