VS2013:无法从一个size_t元素创建矢量
VS2013: Can't create vector from one size_t element
只是想确保它实际上是一个bug,我没有做错什么。使用gcc (MinGW)可以很好地编译:
std::vector<size_t> a({1, 2}); // works
std::vector<size_t> b({1}); // does not work
std::vector<int> c({1}); // works
错误:error C2440: 'initializing' : cannot convert from 'initializer-list' to 'std::vector<std::seed_seq::result_type,std::allocator<char32_t>>'
这可能是VS2013中的一个bug,因为我相信在那个版本中添加了初始化列表。请注意,如果省略()
,它似乎可以正常工作:
std::vector<size_t> b{ 1 }; // works
尝试其他一些变化也产生了一些令人惊讶的结果:
std::vector<size_t> b({ 1 }); // does not work
std::vector<size_t> b1({ 1u }); // does not work
std::vector<long> b2({ 1 }); // does not work
std::vector<long> b3({ 1l }); // works
std::vector<long long> b4({ 1l }); // does not work
std::vector<unsigned int> b5({ 1u }); // does not work
std::vector<size_t> b6{ 1 }; // works
std::vector<unsigned char> b7({ 1 }); // does not work
std::vector<unsigned char> b8({ 1u }); // works
std::vector<unsigned short> b9({ 1 }); // does not work
std::vector<unsigned short> b10({ 1u }); // works
std::vector<unsigned int> b11({ 1u }); // does not work
std::vector<int> b12({ 1u }); // works
std::vector<int> b13({ 1l }); // works
从上述所有不能编译的情况中删除()
使其工作
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 使用strcpy将char数组的元素复制到另一个数组
- 使用不带参数的函数访问结构元素
- 给定n个元素的m个集合.在C++中找到出现在最大集合数中的元素
- C++如何通过用户输入删除列表元素
- lower_bound()返回最后一个元素
- 基于多个条件处理地图中的所有元素
- 调整大小后指向元素值的指针unordered_map有效?
- 使用std::transform将一个范围的元素添加到另一个范围中
- 使用函数"remove"删除重复元素
- 具有最大子序列大小的序列,每个元素都相同
- "Safe"将元素添加到 std::vector 的方法,超出了其 size() 但低于其容量 ()
- 为什么 size() 在与其他堆栈交换元素后提供错误的堆栈大小?
- vector.size() 返回 1,即使其中有超过 1 个元素
- 我可以使用 std::vector.size() 来控制删除元素的循环吗?
- std::vector size()-1 ALWAYS给出最后一个元素的索引吗?
- c++ set size不对应于它的元素个数
- C++在.size()之后丢失向量元素