0

我在 Internet 上找到的唯一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()也许作为一个宏?无论是宏还是函数,它都应该从堆栈而不是堆中分配空间。

4

0 回答 0