- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码:
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/
我想在一个文本文件中查找行数,但是在执行istreambuf_iterator 后我无法读取内容。 std::ifstream loadfile("file.txt"); line_count = s
基于这个问题:C++ streams confusion: istreambuf_iterator vs istream_iterator?在 istreambuf_iterator ,我的理解是is
istreambuf_iterator 什么时候抛出异常?当底层流试图读取一个目录时,我收到一个异常,但在其他情况下没有。具体来说,我从 Jan-Philip Gehrcke 的 blog 中获取了脚
在标准中我读到你必须创建一个默认迭代器才能知道迭代器是否已经到达流的末尾。我认为它变得非常丑陋,难道没有任何预定义的符号或等效符号可以帮助我们吗? The default-constructed st
我们可以将整个文件读入一个字符串: std::ifstream ifs(path); assert(ifs.good()); std::string text(std::istreambuf_iter
我正在使用以下代码(使用命名空间 std)将文件内容转换为字符串。 代码 1 string fileToString(const string& filename) { ifstream fi
我有一段代码可以将 .txt 文件的内容读入字符串。 std::ifstream file("address.txt"); std::string oldAddress((std::istreamb
我正在阅读 Constructing a vector with istream_iterators这是关于将完整的文件内容读入字符 vector 。虽然我希望将文件的一部分加载到字符 vector
代码如下: #include #include #include #include std::vector bytes; { std::ifstream in(name, std::i
我尝试将二进制文件内容的一部分读入字符串。为什么是字符串?我的消息协议(protocol)(使用 protobuf)需要这个。 下面的效果很好: std::string* data = new std
以下是an example from cppreference.com , The Code is: #include #include #include #include int main(
istreambuf_iterator 和 istream_iterator 有什么区别。 对于下面的代码: istream_iterator cin_in(cin); istream_itera
我已经使用 从流中一个一个地提取字符,以构造对象。 最终,我的目标是能够使用 istream_iterator 遍历流并将每个对象插入 vector .非常标准,除了我无法获得 istream_ite
istreambuf_iterator 和 istream_iterator 有什么区别?一般来说,流和流缓冲区有什么区别?我真的找不到任何明确的解释,所以决定在这里问。 最佳答案 IOstreams
许多程序员可能会混淆以下代码: int main() { std::ifstream ifs("filename", std::ios::binary); std::string conten
我需要读取一个包含标题和数据的二进制文件(一次性)。在 C++ 中有多种读取文件的方法,我想知道哪种方法最快、更可靠。我也不知道 reintrerpret_cast 是否是将原始数据转换为结构的最佳方
我正在尝试读取一个充满 std::complex 的二进制文件.我尝试了以下代码,as suggested in this SO answer : #include #include #inclu
我无法编译(非常做作)C++ ranges example : #include #include #include template auto populate(R&& range) {
我有以下代码: std::ifstream ifs(fileName, std::ios_base::in | std::ios_base::binary); std::vector vecdata(
我将二进制文件读入 uchar vector ,如下所示: std::ifstream is("path", std::ios::in | std::ios::binary); std::vector
我是一名优秀的程序员,十分优秀!