【问题标题】:Why did C++17 introduce std::aligned_alloc?为什么 C++17 会引入 std::aligned_alloc?
【发布时间】:2020-12-31 10:29:58
【问题描述】:

目标:了解 C++17 引入 std::aligned_alloc 用于动态内存管理的动机。

问题:对于 C++ 中的内存分配,由于In what cases do I use malloc and/or new? 下举例说明的各种原因,几乎总是不鼓励使用std::malloc。相反,几乎总是鼓励在低级代码中使用new 表达式(例如,参见Notes)。

尽管令人沮丧,但我想知道为什么 C++17 引入了 std::aligned_alloc,它看起来像是 std::malloc 的延续。

new(或鼓励使用的其他等效实用程序,如果有的话)无法在 C++17(及更高版本)中执行任何操作?

尝试:我只能找到以下讨论,这与我的问题仍然遥不可及:

Difference between aligned malloc and standard malloc?

【问题讨论】:

    标签: c++ malloc c++17 memory-alignment


    【解决方案1】:

    C++17 将对纯 C 的支持从 C99 提升到 C11。它继承了 aligned_alloc 以及 C11 的其他内容。

    论文:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0063r3.html

    因此,我们的动机是让 C++ 中的 C 功能可供需要的人使用。

    【讨论】:

      猜你喜欢
      • 2019-03-28
      • 2016-01-09
      • 2019-05-21
      • 1970-01-01
      • 1970-01-01
      • 2017-03-18
      • 2019-01-23
      • 2021-10-26
      • 2016-11-24
      相关资源
      最近更新 更多