如何将聚合初始化器列表推入向量
How can I push an aggregate initialiser list into a vector?
我想写这样的东西:
vector<iovec> iovecs;
iovec io = {&foo, sizeof(foo)};
iovevs.push_base(io);
对于编译器来说是可以的。
现在我试着把它转换成更简洁的东西,像这样:
vector<iovec> iovecs;
iovecs.push_back({&foo, sizeof(foo)});
但是我被拒绝了,错误信息如下:
warning: extended initializer lists only available with -std=c++0x or -std=gnu++0x
我不想启用c++0x。我仍然希望能够使用聚合初始化风格。有什么办法吗?
在uniform-initialization方面使用带括号的初始化器是c++ 11引入的一个特性。
如果你不想启用这样的编译器支持,你很自然地被迫使用你在早期标准中拥有的;正如您已经发现的,它不包括uniform-initialization。
一个简单的"hack"可能会减轻你的痛苦,如下所示:
template<typename T, typename U>
iovec make_iovec (T const& a, U const& b) {
iovec ret = {a, b};
return ret;
}
<一口>一口>
iovecs.push_back (make_iovec (&foo, sizeof(foo)));
相关文章:
- 访问列表向量中的结构
- 从列表向量中删除无法按预期工作
- 从列表/向量制作嵌套 for 循环的最佳方法是什么?
- 在 c++ 中访问列表向量时出现问题
- 指向列表向量中的第n个元素
- 当迭代器添加到添加到列表向量的结构时,迭代器停止指向值?
- 如何将 for 循环中的每个迭代都放入列表/向量中?(C++)
- 删除列表向量中的元素并显示当前列表
- 如何与可以在列表/向量中使用的成员进行类型的类型
- 通过列表向量循环
- 如何使用C 创建多列列表/向量
- 存储动态创建对象的列表/向量的最佳方法是什么
- 基本STL:向量列表或列表向量,在这种特殊情况下哪个会更好
- Seg 错误初始化列表向量与控制台输入
- C++ 将文件读入数组/列表/向量
- 初始值设定项列表向量构造函数
- 如何在C++中初始化列表向量
- C++:保持实体列表向量与集合的最佳方式
- 如何将节点添加到列表向量
- 初始化列表向量时出错