Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
gray_fox
What a waste!
1411 / 1140 / 55
Регистрация: 21.04.2012
Сообщений: 2,362
Завершенные тесты: 3
#1

Обёртка для потока вывода - C++

08.12.2012, 13:47. Просмотров 257. Ответов 0
Метки нет (Все метки)

В С++11 в потоках появился move constructor. Как бы написать класс, который можно одновременно конструировать из ссылки и с помощью временного объекта? Примерный код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <fstream>
#include <utility>
 
 
// inserts stuff in std::ofstream
struct writer {
 
   std::ofstream & ostream() const noexcept {
      return ???;
   }
 
 
   template<typename Type>
   void put(Type const& value) const {
      ostream() << value;
   }
 
 
   // construct from lvalue
   explicit writer(std::ofstream & ostr) noexcept
         : holder(ostr) {}
 
   // construct from rvalue
   explicit writer(std::ofstream && ostr) noexcept
         : holder(std::move(ostr)) {}
 
 
private:
   typedef ???      holder_type;
 
   holder_type      holder;
};
 
 
int main() {
   std::ofstream ofs("lvalue");
   
   // construct from lvalue
   writer(ofs).put("lvalue");
 
   // construct from rvalue
   writer(std::ofstream("rvalue")).put("rvalue");
}
Вообще вопрос чисто интереса ради, т.к. такой класс писать не собираюсь (получается, что writer может как владеть объектом потока, так и нет).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2012, 13:47     Обёртка для потока вывода
Посмотрите здесь:

Согласовать два потока для вывода номера по порядку - C++
Собственно надо согласовать два потока для вывода номера по порядку. Пробую библиотеку std:: Нарисовал нечто следующее, но выдает...

Значение потока вывода - C++
Подскажите пожалуйста! Есть исходный текстовой файл с данными и несколько других (тоже текстовых). По мере чтения из исходного файла...

Перенаправление потока вывода - C++
Здравствуйте! Задача такова - нужно перенаправить поток вывода с cout на файловый в одном из конструкторов класса. Итог - необработанное...

Перегрузка потока ввода-вывода - C++
Подскажите как правильно перегружать потоки, вот что я делал и какие ошибки появились Как правильно перегружать потоки записи и чтения в...

Перегрузка ввода/вывода в/из потока - C++
Никогда потоками не пользовался, поэтому не знаю. Как перегрузить для ввода из потока оператор operator &gt;&gt;? Как перегрузить для вывода в...

Юникод и выход из потока вывода - C++
Visual Studio 2012, консольное приложение. Столкнулся с задачей вывести символы юникода в консоль. Погуглил и для таких целей нашёл...

Переключение файлового потока ввода вывода - C++
Есть прога. Если закоментить первый цикл то будет читать из файла, если второй то будет его писать. Теперь вопрос: как её заставить делать...

Перегрузка потока ввода вывода в dll - C++
Доброго времени суток. Мне нужно создать dll, которая содержит экспортируемый класс для работы с рациональными числами. Сам класс...

Как прочитать данные из потока вывода другого процесса - C++
Как получить то, что выводит командная строка (прочитать выводной поток другого процесса)

Перегрузка операторов ввода и вывода из потока в шаблонном классе - C++
Доброго времени суток. Пишу свой вектор. В нём надо перегрузить вышеназванные операторы. Vector.h class Vector { // ... ...

Перевод потока из файлового ввода/вывода в консольный ввод/вывод - C++
Есть кусок программы: freopen (&quot;G:\\input.txt&quot;, &quot;r&quot;, stdin); freopen (&quot;G:\\output.txt&quot;, &quot;w&quot;, stdout); //Открываем файлы - один...

Обёртка над Variable arguments - C++
Здравствуйте! У меня есть вот такой шаблон: template&lt;typename TYPE&gt; vector&lt;TYPE&gt; MakeVector(int Count,...) { vector&lt;TYPE&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru