Anonymous
Привет
Здоровеньки булы
Jabostan
зачем здороваетесь
Jabostan
нельзя же
Jabostan
neprivet.ru
Denis
насколько вижу Id хука не используется, так что можно еще упростить: m::smart_hook<> hook_sum(&sum);
ид хука нужен для генерации уникальной прокладки для хука. шаблоны и все такое
Ioann_
а чо плохого в форсинлайне ?
Ioann_
Я вот вместо инлайна пишу у себя всегда форсу
Anonymous
Hello, c++ch. I have a question. What the difference between boost and stl?
Berkus
по-моему, очевидно
Anonymous
Ok, I got it
Ioann_
так, а чего плохого то ?
Aidar
Ты и векторизуешь рукамм
🐙 Antony
и как же тогда указывать соглашение о вызове и прочее, что ты решил убрать?
по умолчанию выставить stdcall, так как это 90% случаев. thiscall работает для членов класса, указатель на такой член не влезет в address_t, cdeclcall нужно отдельно потестировать, у меня подозрение что в нём тоже косяк (но доказать не смогу)
Aidar
так, а чего плохого то ?
Компилятор умнее тебя
Aidar
Это рассказывал полухин кажется
Ioann_
Компилятор умнее тебя
Умнее и умнее, а форса то чем плоха ?
Aidar
Умнее и умнее, а форса то чем плоха ?
Вызов быстрее непопадания в кэш
Ioann_
ну так он и при ней может не встроить код
Berkus
Умнее и умнее, а форса то чем плоха ?
но если ты на msvc 6.0 собираешь, то пользуйся конечно!
Denis
хукаемой
Aidar
ну так он и при ней может не встроить код
Но больше шансов ошибиться
🐙 Antony
а с сигнатурой функции что?
определять из входного параметра
Ioann_
Но больше шансов ошибиться
Ну, не знаю, что сказать - не тестировал это
брат
А стоп, в 2007 была 9.0
брат
6.0 в 1998
Ioann_
И чтоже получается что форсинлайн такой плохой, так чего он не депрекатед ?
Ioann_
Или вообще имеет место быть ?
Denis
определять из входного параметра
нет, я не просто так в конструктор это добавил. там генерируется прослойка для хука с той же сигнатурой
Ioann_
А что на счет gcc
Ioann_
__attribute__((always_inline))
Berkus
__attribute__((always_inline))
99,999999999999% нинужно
Ioann_
Ладно, пусть, а векторизация руками сие чем плохо ?
Berkus
ой всё
Ioann_
Ну, кажется, бенчмарк есть
Ioann_
И ому б не потестить и узнать что лучше ?
брат
А че только на урмем накинулись, да, там еще есть 6 репо целых
Ioann_
Где у нас там Саня
🐙 Antony
нет, я не просто так в конструктор это добавил. там генерируется прослойка для хука с той же сигнатурой
Ну вот испугаются пользователи подобного: m::smart_hook<e_hook::h_sum, m::calling_convention::cdeclcall, int(int, int)> hook_sum(m::get_func_addr(&sum)); Сделать так куда как красивее будет: auto hook_sum = make_hook(&sum, HookId);
Denis
будет конечно, но того функционала так не достичь
🐙 Antony
я хукаю метод (thiscall), зачем мне в адресе хранить ещё и this? короче, давайте без поверхностых суждений
Тогда мне нужен пример использования, чтобы понять как это работает
Denis
в репозитории есть
Denis
все эти пляски с шаблонами как раз чтобы было удобно использовать. чем-то приходится жертвовать, да, но зато есть возможность использования лямбды в качестве калбека
Ioann_
Блин, вы меня пугаете, ну неужели форсинлайн даст хуже результат чем просто писать inline ?
Berkus
И ому б не потестить и узнать что лучше ?
Aidar
Чото про велосипеды чтоль
Ioann_
Где найти сие видео ?
Ioann_
И ому б не потестить и узнать что лучше ?
Да я как то тестировал, разницы не было вообще
Ioann_
Потому я его и выбрал в довесок обычному
Aidar
Антон кстати классно рассказывает 10/10
Ioann_
Сейчас Александр мне ответит, мы прогоним векторизацию
Aidar
Наканецта
Aidar
Код дадите потом?
Ioann_
ДА чо там прогонять, я взял самый банальный код
Aidar
а есть ссылка?
У него много выступлений
🐙 Antony
все эти пляски с шаблонами как раз чтобы было удобно использовать. чем-то приходится жертвовать, да, но зато есть возможность использования лямбды в качестве калбека
А на каких платформах код тестировался? member function pointer по разному выглядят на MSVC и GCC. И там и там работает вот этот пример: https://github.com/urShadow/urmem/blob/master/example.cpp#L59-L60 ?
Aidar
Причем этож только вызов
Berkus
Ioann_
Блин, ну шо ты а, конечно же пишу просто __forceinline, наверное стоило сказать не в довесок, а вместо
Ioann_
Ну, как - там вообще дефайн, мне ж еще на лине это потом собирать
Denis
Ты однопоточной ее делаешь?
у тебя есть предложения?
Denis
кстати, посмотрел бы репозитории и у вас
Aidar
у тебя есть предложения?
На чо мьютекс то? На шеред птр чтоль?