Size: a a a

2020 April 24

CD

Constantine Drozdov in pro.cxx
Alex
false
то есть контроль ошибок уровня "операция х3 почему провалилась"
источник

CD

Constantine Drozdov in pro.cxx
какой от этого смысл
источник

A

Alex in pro.cxx
ну это лучше, чем ничего
источник

CD

Constantine Drozdov in pro.cxx
можно продолжать запись
источник

CD

Constantine Drozdov in pro.cxx
а контроль ошибки отдать вызывающему
источник

A

Alex in pro.cxx
у вас какая-то аргументация методом доведения до абсурда, так любую концепцию можно втоптать в грязь
источник

CD

Constantine Drozdov in pro.cxx
нет, у меня просто есть опыт работы с этими абстракциями
источник

A

Alex in pro.cxx
у меня тоже
источник

CD

Constantine Drozdov in pro.cxx
и получаются два разных интерфейса записи
источник

CD

Constantine Drozdov in pro.cxx
dump который blind без контроля и save который явно файловой системы
источник

CD

Constantine Drozdov in pro.cxx
потому что
[[nodiscard]]] bool write_data(stream & s) {
  if (!s.write(f1_)) return false;
  if (!s.write(f2_)) return false;
  if (!s.write(f3_)) return false;
  return true;
}
это просто трешовая копипаста кода
источник

CD

Constantine Drozdov in pro.cxx
возникшая ошибка все равно будет запрошена создателем, для которого s имеет интерфейс шире
источник

CD

Constantine Drozdov in pro.cxx
зачем я все это писал? чтобы лишние вызовы write которые мгновенно откажут не делать?
источник

CD

Constantine Drozdov in pro.cxx
вот как-то
void dump(dump_target & d) {
  d.dump(f1_);
  d.dump(f2_);
  d.dump(f3_);
}
чище, не правда ли?
источник

CD

Constantine Drozdov in pro.cxx
Alex
у меня тоже
а при попытках развивать стримы с контекстом начинается полная херня, потому что номинальный тип строки зависит от типа контекста, что делает невозможным унифицированную запись
источник

CD

Constantine Drozdov in pro.cxx
я не могу inner_identifier_string писать в user_output и localized_string писать в xml_data_output
источник

EP

Egor Pugin in pro.cxx
Dollar Føølish
Я за проактор как на винде
только на нём надо буферы выделять заранее
источник

EP

Egor Pugin in pro.cxx
Dollar Føølish
Благо луникс выкатил ио юринг
а он тоже проактор?
источник

CD

Constantine Drozdov in pro.cxx
Anton Kashcheev
Смотрю этот документ — http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p2146r0.pdf
Выглядит ооочень вкусно.
Короче, summary: типы int, float и string это тип "семантическое никто", их параметры форматирования - форматирование семантического никто, а типы, несущие семантику, не могут быть перечислены в унифицированном контексте; как следствие - нельзя терять информацию о типе контекста, что означает шаблонную/перегруженную функцию записи и бесполезность унифицированных стримов за уровнем
struct dump_interface<Object> {
   virtual void dump(Object) /*noexcept?*/ = 0;
};
источник

A

Alex in pro.cxx
какой-то однобокий взгляд, у вас свои задачи и контекст, у меня свои. Говорить, что раз вам инструмент не подошёл, значит, он никому не нужен - странновато.
источник