170 похожих чатов

А здесь Полухин из Яндекса есть? пусть добавят noexcept для

классов и структур, потому что если оно используется в классе хотя бы для одного метода, то и во всех остальных (инфа 80%) тоже будет.. чо для каждого метода индивидуально код "пачкать"

16 ответов

16 просмотров

А потом кто-нибудь из Ваших коллег случайно напишет не-noexcept метод...

Dmitriy [Отпуск]
А потом кто-нибудь из Ваших коллег случайно напише...

я так полагаю идея в том, чтобы это вызывало ошибку компиляции?

Андрей Руссков
я так полагаю идея в том, чтобы это вызывало ошибк...

А компилятору всё дерево вызовов проверить? Так тогда нужно начинать с обязательной диагностики не-noexcept вызовов внутри noexcept-функций (и всё ещё неясно, что делать с C API)

Андрей Руссков
достаточно проверить noexcept во всех методах...

Идея ТС как раз в том, чтобы у метода это не указывать :))

a11e99z- Автор вопроса
Dmitriy [Отпуск]
А потом кто-нибудь из Ваших коллег случайно напише...

например fs и нетворк вряд ли будут полагаться на исключения, скорее на коды ошибок, а раз так, то все сущности будут noexcept.. ну, или возьми другую область, где отказываются от исключений.. тогда какой резон каждому методу прописывать доп.аттрибут, если можно кучей? в D можно написать nothrow { куча кода } // или nothrow: // и весь код ниже будет nothrow

a11e99z
например fs и нетворк вряд ли будут полагаться на ...

fs и нетворк вряд ли будут полагаться на исключения Ох уж эта диванная аналитика...

Dmitriy [Отпуск]
А компилятору всё дерево вызовов проверить? Так то...

зачем дерево, если можно все диагностики сломать простым if (!vec.empty()) vec.at(0);

А в чём смысл такого действия? Если у вас шаблонный хитрый код, то noexcept вы скорее всего будете проверять на специальных методах (конструкторах и присваиваниях). Они уже автоматически выводятся при = default; Если вы хотите меньший объём бинарников и лучшую оптимизацию, то LTO даст намного больше профита и сам выведет noexcept

a11e99z- Автор вопроса
🐙 Antony Polukhin
А в чём смысл такого действия? Если у вас шаблонн...

исходя из этого noexcept ваще не нужен, потому что компилер и так может его вывести

a11e99z
исходя из этого noexcept ваще не нужен, потому что...

нужен, но в основном на специальных функциях

🐙 Antony Polukhin
А в чём смысл такого действия? Если у вас шаблонн...

кстати, про оптимизацию - видел в 16-м clang новую фичу под названием BOLT. Вроде как публичная. Но пока что нигде не всплывало в статьях/обзорах, только у них самих (в качестве примера применения к clang)

Alexey Vinogradov
кстати, про оптимизацию - видел в 16-м clang новую...

Я кстати как-то удивился, что clang тащит с собой какой-то болт. Пытался найти инфу о том, как я могу это применить, но не нашёл. В итоге забил

Alexey Vinogradov
кстати, про оптимизацию - видел в 16-м clang новую...

как это нигде не всплывала, если эта тулза по сути фейсбуком разработана, а в монорепе LLVM он оказалася уже потом, когда все было готово https://research.facebook.com/publications/bolt-a-practical-binary-optimizer-for-data-centers-and-beyond/ https://discourse.llvm.org/t/preparing-bolt-for-llvm-monorepo/59196

S.E.
Я кстати как-то удивился, что clang тащит с собой ...

у них достаточно развёрнутое описание. Сильно напоминает PGO сперва, но потом выглядит вообще круто. Типа, BOLT берёт профайл и перелинкует _существующий_ бинарь, чтобы он работал быстрее. Причём не только текущей сборки, но и будущих (чем больше расхождение, тем меньше точность). И вот при всём при этом - новость про него не всплыла ни в каких новостях (если оно и в самом деле так круто).

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта