【发布时间】:2015-07-17 10:28:46
【问题描述】:
我的类型具有严格的对齐要求(由于使用了 AVX 操作),它大于平台默认对齐。
为了使这个类的使用更简单,我想专门化std::make_shared 以始终为这种类型使用合适的分配器。
类似这样的:
namespace std{
template<class... Args> inline
auto make_shared<X, Args...>(Args&&... args){
return std::allocate_shared(allocator_type<X, 32>, std::forward<Args>(args)...);
}
}
我的问题是,这是标准允许的吗?它会按预期工作吗?
【问题讨论】:
-
你不能使用
alignas? -
@dyp 不,或者是的,我已经这样做了,但由于this,它不适用于堆分配。这种专门化是为了在最常见的使用情况下甚至在堆上应用对齐。
标签: c++ c++14 memory-alignment standard-library