iw4nna.rock
> 99% разработчиков не умеют писать программы.
Преувеличиваете, вот писать быстрые программы соглашусь. Даже не быстрые, а расходующие время цпу и объем озу пропорционально функционалу.
Имбирная Ведьмочка
> Это неправильная проверка, кстати говоря.
с чего бы не правильная? Не правильно когда начинаешь вызывать, а когда проверяешь, то нет никакой проблемы. Ему нужна проверка является ли данный метод noexcept или нет, а не нельзя ли его вызвать через константную ссылку.
Mirrel
> Использовать глобальные переменные, чтоб увеличить производительность - это
> дополнительная работа программиста.
Ты когда берешь компилятор FPC/Delphi (а он как известно с околонулевыми оптимизациями) - автоматом обрекаешь себя либо на то, чтобы забивать на перфоманс, либо на то, чтобы дрочиться вот так с переменными.
Aroch
> Не правильно когда начинаешь вызывать, а когда проверяешь, то нет никакой
> проблемы.
Обычно, когда делают проверку, то проверяют перед конкретным вызовом.
Конкретно в этом случае, кстати говоря, можно сделать вообще по-другому:
void foo(B& b) noexcept { static_assert( noexcept( b( ))); b( ); }
Ведь noexcept — это не только модификатор, но ещё и выражение, по аналогии с sizeof/alignof.
А если внешняя функция по факту является лишь обёрткой, то её можно сделать вообще полиморфной относительно ноэксепта:
void foo(B& b) noexcept( b( )) { b( ); }
Имбирная Ведьмочка
писать обертку ради того чтобы не писать is_invocable, так себе.
Aroch
> писать обертку ради того чтобы не писать is_invocable, так себе.
Я не это написал.
Имбирная Ведьмочка
> Я не это написал.
ок, как ты предлагаешь изменить изначальный код?
Имбирная Ведьмочка
> Либо, конечно же, можно ещё сам оператор сделать статическим, тогда объект
> будет не нужен, но там уже тебе должно быть виднее.
Статический оператор? А так бывает в плюсах?
Имбирная Ведьмочка
Aroch
Спасибо, я до такого даже не додумался)
Интересно почему работает std::is_nothrow_invocable когда is_invocable возвращает false
Mirrel
> ткнёшь пальцем, где я писал в совокупности о глобальных переменных и производительности?
Ну что за удивительная езда задом?
iw4nna.rock советует использовать глобальные переменные место параметров в функцию для производительности. Это буквально единственный плюс глобальных переменных, который вообще упоминался за весь разговор. Я начинаю его критиковать, а ты называешь мою позицию предубеждениями против глобальных переменных.
Я отвечаю тебе более конкретно, расписывая подробно про производительность глобальных переменных по сравнению с передачей в аргументы. Ты начинаешь спорить даже с этим, рассуждая зачем-то о производительности глобальных переменных в FPC.
Я тыкаю тебя носом в контекст, и тут оказывается, что ты не говорил вообще о связи глобальных переменных с производительностью.
Это, видимо, типаж такой: сначала с умным видом набрасываться на прописные истины, думая, что ты самый умный такой единственный и лучше 99% программистов. А когда тебе подробно объяснили, что так только хуже, то вместо того, чтобы узнать что-то новое, почитать что-то по теме и стать лучше, все силы и время тратить на то, чтобы доказать, что ты оказывается изначально всё знал, был прав и вообще не то имел в виду. Ага, ага, верим.
Вот поэтому такие, как ты и iw4nna.rock никогда хорошими программистами и не станете. Потому что вы уже думаете, будто бы умнее 99%. И вместо того, чтобы развиваться, прикладываете все внутренние ресурсы на защиту своей картины мира. Вот где настоящий самообман.
Alprog
> Я тыкаю тебя носом в контекст, и тут оказывается, что ты не говорил вообще о
> связи глобальных переменных с производительностью.
точнее ты не можешь сказать, просто в очередной раз обосрался?
Ты даже не соизволил прочитать, что я написал кроме: "глобальных переменных в FPC".
> Потому что вы уже думаете, будто бы умнее 99%.
что за манера за других решать? Это болезнь такая? Следи за собой лучше, а то пальцы сотрёшь писать мемуары на форумах.
> ты самый умный такой единственный и лучше 99% программистов.
"я не повторяюсь, не повторяюсь, два раза, два раза".
> А когда тебе подробно объяснили, что так только хуже, то вместо того, чтобы
> узнать что-то новое, почитать что-то по теме и стать лучше, все силы и время
> тратить на то, чтобы доказать, что ты оказывается изначально всё знал, был прав
> и вообще не то имел в виду.
болен?
Успокоительное прими, а то сейчас лопнешь от злости. И к врачу сходи, может посоветует что от головы.
/A\
> Статический оператор? А так бывает в плюсах?
Конечно, пишешь static и он становится статичным. А, не, очередная свинья в Стандарте:
> warning: 'static void bt::operator()()' may be a static member function only with '-std=c++23' or '-std=gnu++23' [-Wc++23-extensions]
/A\
> Интересно почему работает std::is_nothrow_invocable когда is_invocable
> возвращает false
Это где?
Alprog
1. Встрять в разговор и вставить свои пять копеек.
Тебе указывают, что ты не прав ->
2. Настоять на своём, приводя примеры из своего личного пузыря.
Тебе указывают, что твои аргументы неприменимы в текущем контексте ->
3. Сказать всем, что тебя неправильно поняли и пусть научатся читать внимательнее.
Это дефолтный алгоритм Миррела, он мне его уже около разов пятнадцати показывал.
Посмотри у него профиль, кстати, там весело, он эти примеры прямо сам коллекционирует со ссылками.
Alprog
> iw4nna.rock советует использовать глобальные переменные место параметров в
> функцию для производительности.
Он вообще предложил это от балды потому что увидел, что в заголовке слишком много аргументов и подумал, что если их оттуда убрать, то будет лучше. Наверное у него какие-то проблемы с башкой. Идея использовать структуру, единственное назначение которой это просто укоротить вызов, это где-то из той же оперы. Она ещё имела бы успех с архитектурной точки зрения, если бы аргументы представляли из себя что-то единое и переиспользуемое, а не просто картинка и два каких-то случайно взятых прямоугольника.
Mirrel
> что за манера за других решать?
Смысл текста решает читатель. Если кто-то, по-твоему, решил неправильно, то это значит, что ты неправильно написал.
Mirrel
> пальцы сотрёшь
> Успокоительное прими
> лопнешь от злости
Я спокоен и во всём прав. Использовать глобальные переменные вместо передачи в аргументы ради производительности — это был вредный совет в данном контексте. Это не связано ни с какими предубеждениями, а по факту так, потому что даже производительность, ради которой и советовалось, скорее только ухудшится в реальном проекте.
> Ты даже не соизволил прочитать, что я написал кроме
Я-то всё прочитал. Это ты только что упустил из вида о каких языках и компиляторах речь, а не я.
> что за манера за других решать?
Это не я придумал. Это позиция iw4nna.rock, критику советов которого ты называл предубеждениями. В том абзаце я не о тебе конкретно говорю, а рассуждаю про ваш типаж в целом. Не нравится, что я вас в один типаж обобщаю? Ну, наверное, не надо было тогда ставать на его сторону с той же манерой аргументации. Тем более не тебе жаловаться: у тебя характеристики другим людям, в том числе мне, прямо в профиле перечислены. Будь добр, будь готов, что и тебя охарактеризуют.