Как стать автором
Обновить
16
0

Пользователь

Отправить сообщение
О, и сюда дошла мода раз в год мажор инкрементить.
Распознавание токсичных пользователей — несомненно, одна из приоритетнейших задач человечества.
кидать int/enum — жуть
Жуть. Не используйте int/enum в качестве исключений.
обязывать пользователей всегда хранить тип, отнаследованный от std::exception — повлияет на производительность
Стандарт вроде бы нигде не обязывает пользователей наследовать все исключения от std::exception, так с чего бы обязывать здесь? Пользователь как бы сам в состоянии определиться, по карману ему там std::exception или нет.
предлагайте рабочее решение
Я не очень понимаю, что тут предлагать. Изначально это был именно throw exception, но отложенный во времени и пространстве, и в этом была вся фишка. При натягивании его на коды ошибок получилось что-то совсем другое. Оно, возможно, тоже имеет право на существование и найдет применение, но фишка утеряна.
Хранить вторым аргументом исключение — это должно быть редким кейсом
Это было основным кейсом.
Упор в std::expected сделан на хранение кодов ошибки
У меня есть некоторые сомнения в целесообразности упоров на коды ошибок в стандартной библиотеке, в целом построенной вокруг исключений.
вы так получите тривиальность копирования expected
Тривиальность копирования как бы зависит не только от E, но и от T.
кидать код ошибки — это очень сомнительное удовольствие
С этим невозможно не согласиться. Если ими не пользоваться, то и кидать их не придется.
Если менять устоявшееся правило только для одного класса то будет только хуже
Если рассматривать expected просто как advanced optional — несомненно. Проблема в том, что это был не совсем advanced optional.
Не нравится стандартный std::expected — напишите и используйте свой
О чем и речь.
В C++23 добавляется класс std::expected
Добавляется, похоже, в сломанном виде.
Ну ок, еще один std::regex.
Вопреки распространенному мнению, евреи-амиши

Вопреки распространенному мнению, амиши — не евреи.
Обе истории — очередное подтверждение того, что счастье — понятие относительное: человеку не надо «хорошо», человеку надо «лучше, чем у других».

См. анекдот про «выколи мне глаз».
Даже у самого закоренелого интроверта иногда возникает желание взять ноутбук и поработать в каком-нибудь уютном кафе

Нет.
Не заставляйте себя, вы счастливый человек.
А то затянет, прокачаете язык, начнете понимать ссылки на поп-культуру и все — любой перевод будет восприниматься как «рабинович по телефону напел» и просмотры в компаниях и кинотеатрах будут уже не в радость.
«Чутье» вырабатывается не от глубинного понимания принципов (тем более, что тут не точная наука и на каждый принцип есть пачка исключений), а от практики и еще раз практики, на то оно и чутье.
Ваш пример с выпускниками и обладателями опыта как раз об этом, разве нет?
Какой частью речи является cold во фразе “it is cold”? Грамматический учебник с радостью даст готовый ответ. Да и, казалось бы, какая разница?? Однако если с помощью правильно выстроенной системы упражнений понять глубинные механизмы, лежащие в основе построения этой несложной (вроде бы) фразы, то становятся простыми и понятными тысячи частных случаев использования отдельных слов и конструкций.

Когда вы на русском пишете, вы тоже в голове держите «тут у меня существительное, тут наречие, а сюда вверну деепричастный оборот по правилу 5.1.42», или оно таки как-то само получается?
Пуристам на заметку: популяризация, текст, терминология, форма, библиография, публикация, цитирование, коллега, термин, дефиниция, рамка, логика, материал, апелляция, аудитория, сетикет, доктор — тоже коварно пролезшие в язык иноязычные термины.
То что обновления Windows, приносят не только исправления но и новые баги — уже не новость
Это не новость с момента рождения индустрии, поэтому некоторые предпочитают любые обновления устанавливать тогда, когда есть время и желание разбираться, если что-то таки пойдет не так, а не тогда, когда вендору захотелось.
она вся изгибается, как змея

«летит по непредсказуемой траектории»

образуется более широкий спектр

«обладает неограниченным радиусом действия»
В детстве Victory, увы, почти целиком прошел мимо меня, т.к. в то же время по другому каналу шел какой-то унылый сериал для взрослых. Времени хватало только на опенинг, дальше приходилось переключать.
Пересмотрел уже в 2000-х с появлением быстрого интернета и да, он шикарен — классическое аниме 80-х с самурайством, драмой, запредельной эпичностью и периодическими вкраплениями балагана.
  • Не пользуйтесь стандартной библиотекой языка. Что может быть интереснее, чем написать свои строки и списки с уникальным синтаксисом и семантикой?
  • Смартпоинтеры и прочее RAII от лукавого, всеми ресурсами надо управлять вручную, это делает код простым и понятным.
  • И вообще, выделение памяти — зло. char c[256] хватит всем, а если не хватит, то потом поменяем на 512. В крайнем случае на 1024.
  • Глобальные переменные очень удобны, т.к. к ним можно обращаться отовсюду.

Так неинтересно, список можно продолжать бесконечно.

Значит, контракт будет нарушен и чьи-то ожидания разойдутся с действительностю.


А теперь представим, что некая программа аллоцирует блок размером не "длина строки + 1", а "длина строки + 42", при этом корректно и строго по документации добавляя нулевой символ после данных. Ну или сама ОС аллоцирует больше запрошенного по каким-то своим причинам, и что?

и что?

И ничего хорошего, т.к. по контракту (см. выше) он там быть обязан.

В дверных звонках, например.
Проверьте свой, если еще советский.
Потому что бага там нет:
CF_UNICODETEXT
A null character signals the end of the data.

А с вашим «исправлением» — был бы:
GlobalSize
The size of a memory block may be larger than the size requested when the memory was allocated.
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность