Я думал, чтобы преобразовать этот рабочий код:C++ проблемы с временным ostream объектов
ofstream outfile("my_file.txt");
copy(v.begin(), v.end(), ostream_iterator<int>(outfile));
в это:
copy(v.begin(), v.end(), ostream_iterator<int>(ofstream("my_file.txt")));
Другими словами, я использую "анонимный", или безымянный, версию объект потока.
Два вопроса:
(1) Почему вторая попытка не увенчается успехом?
(2) Является ли вторая попытка даже хорошей стилистикой или лучше на C++ сохранить все явно названное? Я исхожу из фона Python, где объекты создаются «на лету» все время.
Спасибо!
Поскольку для конструктора итератора требуется не-const-ссылка, и вы передаете объект temp, который лучше всего может быть отправлен только для параметра const-reference. Чтобы ответить на ваш второй вопрос, код, который не компилируется/работает, вряд ли квалифицируется в легенде «хорошего стиля». – WhozCraig
Как не работает вторая версия? Скомпилирует ли он? Если нет, то какая ошибка? Если да, получаете ли вы ошибку во время выполнения? –