Информация об изменениях

Сообщение Re[6]: Много boost::range::join приводит к stack overflow от 24.07.2020 5:22

Изменено 24.07.2020 5:23 ArtDenis

Re[6]: Много boost::range::join приводит к stack overflow
Здравствуйте, B0FEE664, Вы писали:

AD>>Но stack overflow всё равно происходит в конструкторе joined_range! Вот теперь-то он откуда?

BFE>Слушайте, там удвоение размера на каждом шаге, как не крути, стека не хватит хотя бы просто потому, что конструктор там тоже рекурсивный. Да что стека, просто памяти не хватит!
Да. Но std::make_unique создаёт объект в куче (в переделанном варианте). Возврат из функции через std::unuque_ptr. Стэк не должен задействоваться.


BFE>Да это просто шедевр какой-то!

Согласен )
Re[6]: Много boost::range::join приводит к stack overflow
Здравствуйте, B0FEE664, Вы писали:

AD>>Но stack overflow всё равно происходит в конструкторе joined_range! Вот теперь-то он откуда?

BFE>Слушайте, там удвоение размера на каждом шаге, как не крути, стека не хватит хотя бы просто потому, что конструктор там тоже рекурсивный. Да что стека, просто памяти не хватит!
Да. Но std::make_unique создаёт объект в куче. Возврат из функции через std::unuque_ptr. Стэк не должен задействоваться.


BFE>Да это просто шедевр какой-то!

Согласен )