Я пытаюсь использовать решение из этого вопроса:
Сообщение об ошибке
c: \ program files (x86) \ microsoft visual studio 10.0 \ vc \ include \ xutility (2144): ошибка C2679: двоичный файл '=': не найден оператор, который принимает правый операнд типа 'const Line' (или нет приемлемого преобразования)
(и куча данных трассировки шаблонов после этого)
Я использую Visual C ++ 2010 Express.
код
#include<string>
#include<iostream>
#include<fstream>
#include<vector>
#include<iterator>
class Line
{
std::string data;
public:
friend std::istream& operator>>(std::istream& inputStream, Line& line)
{
std::getline(inputStream, line.data);
return inputStream;
}
operator std::string()
{
return data;
}
};
int main(int argc, char* argv[])
{
std::fstream file("filename.txt", std::fstream::in | std::fstream::out);
std::vector<std::string> lines;
// error is in one of these lines
std::copy(
std::istream_iterator<Line>(file),
std::istream_iterator<Line>(),
std::back_inserter(lines));
}