Bel*_*loc 6 c++ memory-alignment c++11
第151页的新书中的Stroustrup显示了以下使用类型说明符的示例alignas:
有时,我们必须在声明中使用对齐,其中不允许使用诸如alignof(x + y)之类的表达式.相反,我们可以使用类型说明符alignas:alignas(T)表示"就像T一样对齐" 例如,我们可以为某些类型X预留未初始化的存储,如下所示:
void user(const vector<X>& vx)
{
constexpr int bufmax = 1024;
alignas(X) char buffer[bufmax]; // unitialized
const int max = min(vx.size(), bufmax/sizeof(X));
unitialized_copy(vx.begin(), vx.begin() + max, buffer);
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
139 次 |
| 最近记录: |