我有以下代码:
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));
Run Code Online (Sandbox Code Playgroud)
setData声明如下:
void Image::setData(std::vector<char> && data);
Run Code Online (Sandbox Code Playgroud)
我有以下错误:
reader.cpp:752:错误:没有匹配的调用函数
'image :: setData(std :: vector(&)(std :: istreambuf_iterator>,std :: istreambuf_iterator>(*)()))'
Run Code Online (Sandbox Code Playgroud)image->setData(std::move(vecdata)); ^候选人是:
image.h:12:void Image :: setData(std :: vector &&)
我正在使用gcc 4.91
MCVE与gcc 5.4,行为相同:http://rextester.com/QYA50737
这是一个gcc bug吗?
谢谢
你有最多Vexing Parse:使用{}而不是():
std::vector<char> vecdata{std::istreambuf_iterator<char>(ifs),
std::istreambuf_iterator<char>()};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |