我注意到std::aligned_alloc()
进入了C ++ 17,我喜欢它。但是-当我需要重新分配时会发生什么?我可以手动执行此操作(假设当前分配的地址处的可用空间仅是我要求的空间量),但是标准库中是否应该没有此功能?
答案 0 :(得分:2)
没有等效的标准呼叫。
例如,Microsoft的最新C ++实现仍然具有自己的_aligned_malloc()
而不是std::aligned_alloc()
。还有here they explain why:
aligned_alloc()可能永远不会实现,如C11所指定 它与我们的实现方式不兼容(即 free()必须能够处理高度一致的分配。
在带有下划线前缀的仅MS版本的C ++库实现中,它们确实通过_aligned_realloc()
为您服务:-)