alloca()与VLA和C ++

时间:2016-07-28 14:00:52

标签: c++ c++17 alloca

我在互联网上找到的唯一的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()实现更紧密地调用语义吗?也许作为宏观?无论是宏还是函数,都应该从堆栈中分配空间,而不是堆。

0 个答案:

没有答案