std::aligned_alloc() 的重新分配等价物是什么?

What's the reallocation equivalent of std::aligned_alloc()?

我注意到 std::aligned_alloc() 进入了 C++17,我喜欢它。但是 - 当我需要重新分配时会发生什么?我可以手动执行此操作(假设当前分配地址的可用 space 正好是我要求的 space 的数量),但标准库中不应该有这样的工具吗?

没有这样的标准调用等价物。

更重要的是,微软最新的 C++ 实现仍然有自己的 _aligned_malloc() 而不是现在标准化的 std::aligned_alloc(),并且 here they explain why:

aligned_alloc() will probably never be implemented, as C11 specified it in a way that’s incompatible with our implementation (namely, that free() must be able to handle highly aligned allocations).

在他们的 (Microsoft) 下划线前缀实现中,他们确实为您提供 _aligned_realloc() :-)