Nik*_*kos 4 c++ overloading alignment new-operator delete-operator
从cppreference我们可以看到几个新的过载new和delete,以及new[]和delete[]添加。我在 cppreference 或其他任何地方都找不到任何使用新对齐重载的示例。我已经对它们进行了一段时间的试验,但我不知道如何触发这些对齐的动态分配的调用。任何人都有任何想法,请分享一个例子。
您需要在类型上指定 align as 关键字,然后正常调用 new 和 delete 。我在这里整理了一篇带有示例的文章:https : //github.com/Twon/Alignment/blob/master/docs/alignment_in_C%2B%2B.md。一个例子是:
#include <memory>
int main() {
class alignas(16) float4 {
float f[4];
};
std::unique_ptr<float4 > aligned_vec4(std::make_unique<float4 >());
}
Run Code Online (Sandbox Code Playgroud)
以及英特尔编译器的示例,该编译器目前通过aligned_new 扩展头文件提供此功能:https ://software.intel.com/en-us/articles/aligned-operator-new-support-in-intel-c-compiler
| 归档时间: |
|
| 查看次数: |
1555 次 |
| 最近记录: |