gpt4 book ai didi

c++ - 传递从 istreambuf_iterator 构造的 std::vector

转载 作者:行者123 更新时间:2023-11-30 01:08:26 32 4
gpt4 key购买 nike

我有以下代码:

std::ifstream ifs(fileName, std::ios_base::in | std::ios_base::binary);
std::vector<char> vecdata(std::istreambuf_iterator<char>(ifs),
std::istreambuf_iterator<char>());
image->setData(std::move(vecdata));

setData声明如下:

void Image::setData(std::vector<char> && data);

我有以下错误:

reader.cpp:752: error: no matching function for call to

'Image::setData(std::vector (&)(std::istreambuf_iterator >, std::istreambuf_iterator > (*)()))'

image->setData(std::move(vecdata));
^

candidate is:

image.h:12: void Image::setData(std::vector&&)

我正在使用 gcc 4.91

MCVE 与 gcc 5.4,相同的行为:http://rextester.com/QYA50737

这是 gcc 错误吗?

谢谢

最佳答案

你遇到了最烦人的解析:使用 {} 而不是 ():

std::vector<char> vecdata{std::istreambuf_iterator<char>(ifs), 
std::istreambuf_iterator<char>()};

关于c++ - 传递从 istreambuf_iterator 构造的 std::vector<char>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42782568/

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