我在这里阅读了一个答案,展示了如何使用以下一(两个)衬里将整个流读入 std::string :
std::istreambuf_iterator<char> eos;
std::string s(std::istreambuf_iterator<char>(stream), eos);
对于执行类似将二进制流读入
std::vector
的操作,为什么我不能简单地将 char
替换为 uint8_t
,将 std::string
替换为 std::vector
?
auto stream = std::ifstream(path, std::ios::in | std::ios::binary);
auto eos = std::istreambuf_iterator<uint8_t>();
auto buffer = std::vector<uint8_t>(std::istreambuf_iterator<uint8_t>(stream), eos);
上面产生编译器错误(VC2013):
1>d: 上SV