c++ - 如何对齐为 std::vector 分配的内存?
问题描述
在下面显示的代码中,我想将缓冲区对齐到 64 字节边界
#include <vector>
#include <iostream>
int main()
{
using Buffer = alignas(64) std::vector<char>;
Buffer buffer;
buffer.push_back('a');
buffer.push_back('b');
buffer.push_back('c');
for (auto& i : buffer)
std::cout << i << "\n";
}
当我编译代码时,我收到以下警告。
warning: ignoring attributes applied to class type ‘std::vector<char>’ outside of definition [-Wattributes]
using Buffer = alignas(64) std::vector<char>;
^~~~~~~~~~~~
我在这里做错了什么?如何定义与 64 字节边界对齐的向量?
编辑:我想对齐向量拥有的基础数据。使用 std::vector 时是否可以将其对齐到 64 字节边界?
解决方案
推荐阅读
- elasticsearch - 如果带有 _primary_shard 首选项的 GET 请求落在只有副本分片的节点上怎么办?
- python - 访问不同 django 模型的类中的对象
- c++ - 第 924 行:字符 9:运行时错误:引用绑定到“int”类型的空指针 (stl_vector.h)
- c - 使用 Clang 编译 MPI,但使用不同编译器的包装器
- django - Django(查找并替换所有) - 选择是:“配置”。django.core ....配置不当:“adolim.apps”不包含“AdolimConfig”类
- python - 如何使用滑块将交互式文本添加到 Plotly 条形图?
- ios - TableView 显示 Documents 文件夹中的文件
- python-3.x - 如何为单独的 python 脚本中保存的函数导入模块?
- java - How Can I Add TableView1 items to TableView2?
- ios - 为什么没有调用我的 UIButton 目标操作?