gpt4 book ai didi

c++ - VS2013 : Can't create vector from one size_t element

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:18:05 25 4
gpt4 key购买 nike

只是想确定它确实是一个错误,而且我没有做错什么。它用 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 中的一个错误,因为我相信初始化列表已添加到该版本中。请注意,如果您省略 () 它似乎工作正常:

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

从上述所有未编译的情况中删除 () 使其工作。

关于c++ - VS2013 : Can't create vector from one size_t element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30536090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com