【发布时间】:2018-02-24 16:22:07
【问题描述】:
我正在尝试将二进制格式的文件读入std::vector<std::byte>
std::ifstream fStream(fName, std::ios::binary);
std::vector<std::byte> file_content((std::istreambuf_iterator<std::byte>(fStream)),
std::istreambuf_iterator<std::byte>());
但我收到此错误(在我看来,istreambuf_iterator 缺少 std::byte 的重载)
error: no matching function for call to ‘std::istreambuf_iterator<std::byte>::istreambuf_iterator(std::ifstream&)’
std::vector<std::byte> file_content((std::istreambuf_iterator<std::byte>(fStream)),
我做错了吗?如果是的话,最好的方法是什么?
谢谢!
【问题讨论】:
-
@PasserBy 如果我尝试使用
istream_iterator如果得到error: no match for ‘operator>>’ (operand types are ‘std::istream_iterator<std::byte>::istream_type {aka std::basic_istream<char>}’ and ‘std::byte’) -
@ThéoChampion 这是因为没有默认的
operator>>从std::istream读取std::byte