All streams
Search
Write a publication
Pull to refresh
17
0

User

Send message
потом можно снять и просто пересобрать код
Снятие, увы, подразумевает ручной анализ всего графа вызовов, т.к. если вы снимете не везде, то получится не compile time error, a terminate в рантайме.

может быть ситуация когда люди увидят noexcept и вместо unique_ptr где-нибудь заюзают delete… и потом, когда noexcept уберут, и в этом коде пролетит исключение, объект утечет
Скорее «люди увидят noexcept и пометят свой код, вызывающий ваш код, тоже как noexcept (т.к. они читали хабр и знают, что это хорошо), а когда в один прекрасный день ваш код перестанет быть noexcept и из него прилетит исключение — всё просто накроется медным тазом.
Хорошая статья, но:
Главный вывод — ставьте noexcept везде. Это просто одно слово, написание которого ничего не стоит, но при этом вы получаете потенциальный выигрыш с точки зрения производительности ваших приложений.

Вы же сами выше пишете:
Если мы навесим noexcept, а потом его придется убирать (а это уже часть интерфейса), пользовательский код может заложиться на это.

Сегодня вы ставите направо и налево noexcept ради «потенциального выигрыша», а завтра ситуация изменится и придется его долго и нудно вычищать ручками из вызывающих функций, а то и из пользовательского кода, и компилятор вам ничем не поможет.

Ставьте noexcept там, где исключений нет и не будет по дизайну (например, в move конструкторах & операторах, обертках над C-кодом и т.п.), а не там, где их нет сегодня, потому что звёзды так сложились.
Основной минус такого подхода в создании неявных зависимостей. Глядя на исходный файл невозможно сказать, какие именно заголовочные файлы из stdafx.h в нем используются

А какая вам, по большому счёту, разница?
Что даёт знание того, что вот в этом файле используются vector или map?
Если проект хоть немного нетривиальнее "hello, world!", это, скорее всего, так и будет для любого файла.


Я видел достаточно проектов, внедряющих PCH, и почти везде звучало вот это "ой, скрытые зависимости, давайте сделаем сборку без PCH и будем иногда её запускать". И некоторые даже делали. И нет, никто её потом не запускал, потому что были более насущные задачи. В результате зависимостям становилось только хуже.


Расслабьтесь, #include "pch.h" и получайте удовольствие.

Рано или поздно, несомненно, взорвется.
Однако, СССР протянул аж 70 лет, что скорее поздно, чем рано. А Северная Корея — уже 72.

Вам сильно тепло от того, что внукам, возможно, будет хорошо?
Однако от признаных экспертов я ожидаю взвешенного освещения ситуации, которое, как минимум, не содержит грубых фактических ошибок

И напрасно.
Эксперты — они потому и эксперты, что узкая специализация.
Чем больше времени потрачено на что-то одно, тем меньше его на всё остальное.
Чем больше набито шишек, тем больше предубеждение, что «там» всё еще хуже и нежелание набивать их еще раз. Всяк кулик своё болото хвалит.

В качестве канонічного примера можно почитать спичи Линуса о C++.
«fix:» в заголовке не нужен.

Да, русскоязычный сегмент завален «оригинальным» контентом ради контента, от которого вам будет только хуже, но англоязычный не менее завален обтекаемой банальностью типа «сбросьте настройки / перезагрузите компьютер / переустановите ОС». Если проблема хоть немного отличается от шаблонной, искать можно долго.
He doesn't know, he needs to, he's gotta ask his wife! The fact is it doesn't matter what the fuck he says! If he's already agreed that the stock's going up, then the only real objection he has at this point is he doesn't trust you! And he shouldn't trust you, you're a fucking salesman!

Они ничего не знают. Им нужно подумать, поговорить с женами, волшебными феями. Не важно, что они говорят. Проблема только, если они вам не доверяют. А с чего они должны вам доверять? Взгляните на себя? Ведь вы обыкновенные гребаные торгаши!


Шут с ними, с ругательствами, и с тем, что перевод, в целом, чудовищен.
С каких пор he, wife и salesman — plural?
люди (собаки такие) коллективно приняли всеобщую тупость за общую «среднюю» норму и теперь любого, кто чуть адекватнее и не суёт пальцы в рот называют умным


Think of how stupid the average person is, and realize half of them are stupider than that.

― George Carlin
разгильдяйство населения, которое не спешит выполнять карантинные мероприятия, установленные правительством, а также нерешительность правительств некоторых стран по введению таких мероприятий

Да-да-да, во всем же виновато противное население. Надо больше решительных запретов, штрафов, слежки и прочего фашизма, это точно поможет.
А каким боком четвертая картинка относится к Амстердаму?
Обратите внимание: файл, который они скачивают, весит 591 килобайт. Персонажи переживают из-за необходимости заново загрузить полмегабайта. Это реальное положение дел в 2002-м.

Реальное положение дел в 2020-м:
— Скорость выросла на порядки.
— Многое ушло в торренты и стриминг.
— Как результат предыдущих пунктов, скачивалки в браузерах либо остались на уровне 2002 года, либо еще и деградировали.
— Однако, объемы скачиваемого тоже выросли на порядки.

Итого:
— Если у вас идеальное подключение — всё, как правило, работает.
— Если оно хоть немного неидеальное — скачивание обрывается, браузер сматывает удочки. Повтор? Не, не слышали. Докачка? Да ну, это слишком сложно.

Попробовав скачать условные 500 Mb раз, другой, третий, в итоге плюешь и откапываешь стюардессу какой-нибудь download master из того же 2002, который почему-то может в повтор, докачку, множественные подкючения и прочие утраченные технологии допотопной цивилизации.
Почему не стоит начинать карьеру в маленькой не-IT компании

Потому что это потраченное впустую время.

Вы научитесь обжимать витую пару, переустанавливать windows в бухгалтерии, лазить под столами, смеяться над шутками начальника на корпоративах, носить мешки с основной продукцией компании (да-да, «нужны сильные программисты» как раз об этом), применять технологии 20-летней давности, заменять системы контроля версий zip-архивами и виртуозно нажимать Alt-Tab.

IT-компании почему-то не очень ценят подобные навыки.
Знаете, какое впечатление на меня производит эта картина? Большая семья вынужденно жила в одной маленькой комнате, поэтому научилась размещать вещи с точностью до миллиметра и овладела тайным искусством создания пятиярусных кроватей. А потом переехала в просторную многокомнатную квартиру — но по привычке заняла там только одну комнату, все остальные оставила пустыми. Люди по-прежнему сидят друг у друга на головах.

Вопрос: не кажется ли вам, что это безумие? Если появилась возможность дать каждому вдоволь пространства, то ради чего его экономить? Кому лучше от древнего мастерства пятиярусных кроватей, если при этом пригласить друга в гости некуда? Не пора ли овладевать новым мастерством выбора king size-кровати?

Прекрасная аналогия. Ситуация, однако, несколько иная:

Большая семья вынужденно жила в маленькой комнате. Переехав в новое помещение, она обнаружила, что большая часть пространства уже забита какими-то мутными ящиками с надписями «не трогать, системный компонент». Глава семьи купил новый чайник. В квартире немедленно материализовались еще 3 новых ящика общим объемом в несколько кубометров. После покупки рояля люди вновь вынуждены сидеть друг у друга на головах.


Безумие? Еще какое.
Почему мои коллеги/сотрудники ведут себя как @%§?

«Уся рота, ч-черт бы ее побрал, идет не в ногу. Один п-подпоручик идет в ногу»
такой оператор будет оператором || для всех типов. Это было бы слишком навязчиво для остальной части кода.

SFINAE + is_invocable (или просто концепт invocable в C++20) в помощь.
И удивительно, что очень малая их часть включена по умолчанию

А ничего удивительного — сначала находятся уникумы, компилирующие с «treat warnings as errors», потом выходит новая версия с новыми предупреждениями, потом багтрекер компилятора заваливают репортами «ааааа вы сломали нам билд», потом разработчики компилятора решают, что ну его нафиг и делают новые предупреждения выключенными по умолчанию.
Коротче, те же яйца что и с ABI, только в профиль.
Яндекс помогает распространять вредоносное ПО?


Заголовок уровня «Солнце встает по утрам?»

Ну да, помогает своим клиентам, оплатившим услуги по размещению рекламы, при условии, что это не совсем уж откровенное палево. Яндекс тоже хочет кушать.
Как известно, если вам что-то предоставляется бесплатно, то вы не клиент, вы товар.
Судя по комментариям, статья написана не зря.
Говорят, в Windows при последовательном чтении MapViewOfFile точно ничего не дает, а то и замедляет. Как в других ОС не знаю, но вряд ли сильно иначе.

Information

Rating
Does not participate
Registered
Activity