Сообщение Re[3]: Deleter unique_ptr для ostream от 19.04.2023 9:02
Изменено 19.04.2023 9:05 rg45
Re[3]: Deleter unique_ptr для ostream
Здравствуйте, _agg, Вы писали:
_>Внимательнее читайте, этот макрос объявлен в библиотеке, и эта библиотека использует этот поток, а пользователь библиотеки уже сам назначает куда же этот std::ostream будет писать, поэтому и было написано таким образом:
Да, виноват, невнимательно посмотрел.
Вариант с make_unique вполне рабочий, нужно только чуть подправить:
_>Внимательнее читайте, этот макрос объявлен в библиотеке, и эта библиотека использует этот поток, а пользователь библиотеки уже сам назначает куда же этот std::ostream будет писать, поэтому и было написано таким образом:
_>//объявление OSTREAM это std::ostream
_>std::unique_ptr<OSTREAM> ostm;
_>...
_>//инициализация
_>ostm.reset(new std::ofstream("file.txt", std::ios::app)) // это рабочий вариант
Да, виноват, невнимательно посмотрел.
_>//вот это не рабочий вариант потому что OSTREAM это std::ostream а инициализировать его нужно файловым потоком std::ofstream
_>pstm = std::make_unique<OSTREAM>("file.txt", std::ios::app)
Вариант с make_unique вполне рабочий, нужно только чуть подправить:
pstm = std::make_unique<std::ofstream>("file.txt", std::ios::app);
Re[3]: Deleter unique_ptr для ostream
Здравствуйте, _agg, Вы писали:
_>Внимательнее читайте, этот макрос объявлен в библиотеке, и эта библиотека использует этот поток, а пользователь библиотеки уже сам назначает куда же этот std::ostream будет писать, поэтому и было написано таким образом:
Да, виноват, невнимательно посмотрел.
Вариант с make_unique вполне рабочий, нужно только чуть подправить:
_>Внимательнее читайте, этот макрос объявлен в библиотеке, и эта библиотека использует этот поток, а пользователь библиотеки уже сам назначает куда же этот std::ostream будет писать, поэтому и было написано таким образом:
_>//объявление OSTREAM это std::ostream
_>std::unique_ptr<OSTREAM> ostm;
_>...
_>//инициализация
_>ostm.reset(new std::ofstream("file.txt", std::ios::app)) // это рабочий вариант
Да, виноват, невнимательно посмотрел.
_>//вот это не рабочий вариант потому что OSTREAM это std::ostream а инициализировать его нужно файловым потоком std::ofstream
_>pstm = std::make_unique<OSTREAM>("file.txt", std::ios::app)
Вариант с make_unique вполне рабочий, нужно только чуть подправить:
pstm = std::make_unique<std::ofstream>("file.txt", std::ios::app);