Единственный alloca()
замена для C ++, которую я нашел в Интернете, выглядит примерно так:
template <typename F>
void alloca_(::std::size_t const n, F&& f) noexcept(noexcept(f({})))
{
alignas(::std::max_align_t) char p[n];
f(p);
}
Но, очевидно, это не alloca()
мы знаем и любим, это не функция и не макрос. Может alloca()
реализация, которая напоминает alloca()
семантика вызова функции более подробно, быть написано? Возможно, как макрос? Будь то макрос или функция, он должен выделять пространство из стека, а не кучи.
Задача ещё не решена.
Других решений пока нет …