簡體   English   中英

傳遞一個std :: vector <char> 從istreambuf_iterator構造

[英]Passing a std::vector<char> constructed from istreambuf_iterator

我有以下代碼:

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:錯誤:沒有匹配的函數可以調用

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

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

候選人是:

image.h:12:無效的Image :: setData(std :: vector &&)

我正在使用gcc 4.91

帶有gcc 5.4的MCVE,行為相同: http : //rextester.com/QYA50737

這是gcc錯誤嗎?

謝謝

您獲得了最令人討厭的解析:使用{}代替()

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM