Surreal
Благо он не компилируется, если ошибка есть, и дебажить это не надо.
Surreal
Это на собеседках спрашивают =\
Nikolai
Это на собеседках спрашивают =\
Страшно жить становиться
Evgenii
опыт с прологом помогает писать variadic templates
Все таки вариадики сложнее очевидных вызывают очень сильное ощущение write-only
Anonymous
Добрый день, есть ли те, кто работал с TCP протоколами? Желательно команда
Surreal
Ну вот представьте, что шаблоны в рантайме инстанцируются, вы написали кучу шаблонов, рекурсивных шаблонов и специализаций под типы, потом написали кучу кода который все это использует и у вас где-то ошибка. И это все надо как-то дебажить.
Surreal
Так что огромный плюс, что оно compile time и компилятор выдаст варнинг, где не сможет инстанцировать шаблон нужный.
Surreal
Добрый день, есть ли те, кто работал с TCP протоколами? Желательно команда
Вы, видимо, ищите разработчиков на проект. Поэтому совет: уточните, что именно у вас гуляет по сети. Потому что tcp - это протокол, один, а не много (если брать его отдельно от ipv4\6), а поверх него у вас, видимо, написан свой.
Surreal
Сеть на raw-сокетах? Я не встречал, кстати. Может трейдинговые конторы используют.
Surreal
SOCK_RAW вместо SOCK_STREAM
Алдар
SOCK_RAW вместо SOCK_STREAM
это вроде просто UDP
Surreal
UDP - это DGRAM + IPPROTO_UDP
Surreal
В SOCK_RAW приходит полный набор из ethernet header, ip header, tcp\udp header и самих данных.
Surreal
Угу.
Surreal
Оно, кстати, всегда так приходит. Правильнее, наверное, сказать, что для чтения становится все это доступно.
Surreal
И вручную формировать запрос можно.
Platon
Здравствуйте, кто-то может помочь со строками?
Anatoly
попробуй спросить
Platon
не могу сделать замену символов в строке, а именно, например если есть строка "abc", то вывод должен быть как "bcd"
Platon
я думал, что это нужно делать через strchr
Platon
но мне кажется, что этот метод слишком объемный получится
Platon
простым перебором всего алфавита + заглавные буквы
Surreal
c или c++?
Platon
с
Artem
замену или сдвиг?
Platon
по сути сдвиг
Surreal
Это не суть.
Surreal
по сути сдвиг
Если именно сдвиг, то http://stackoverflow.com/questions/12633039/shift-elements-in-array
Artem
не этот же сдвиг
Artem
а каждый чар циклически сдвинуть
Platon
да, это не сдвиг
Platon
точнее не тот
Artem
ну как бы решение звучит как "каждый чар циклически сдвинуть"
Artem
что в нем непонятно?)
Artem
без strchr, просто циклом
Platon
это если есть алфавит
Artem
вычесть 'a', сложить по модулю
Artem
а если нет, то таблицу сделай
Artem
строку с заменами на правильных местах
Artem
ну будет она у тебя длиннее значащей части алфавита, и что
Platon
хм
Ruslan
И по прологу)
По клипсу тогда уж тоже😂
Vergil
и тут отпишусь на всякий
Vergil
Есть адекватные конвертеры из студиевских проектов в cmake? чтоб прям всё конвертнули. Всю информацию, оптимизации и т.д.
Aleksei
Предиктор инструкций и конвееризация еще, о них часто забывают
а это ты как софтверно можешь использовать?
Aleksei
ну есть это, и что дальше
Aleksei
есть ещё out-of-order, спекулятивность и много чего
Nikita
а это ты как софтверно можешь использовать?
https://youtu.be/BP6NxVxDQIs?t=34m15s 34m 15s и дальше
Nikita
пример есть
Nikita
если грубо: организуй данные и вычисления так, чтоб было меньше data-depentent развилок
Aleksei
а я думол компилятор сам может такие оптимизации проводить
Nikita
то есть, чтобы локальные по времени вычисления были похожи
Nikita
а я думол компилятор сам может такие оптимизации проводить
ну, не все компиляторы умеют, да и не всегда эффективно
Nikita
банальный пример, где часто используется: отсортировать объекты по vtable перед тем, как делать полиморфные вызовы в цикле
Aleksei
хм интересно
Vergil
Я кидал вам ссылку
я писал это сообщение в то же время что и в той группе
Viktor
Всем привет! Подскажите, пожалуйста! Можно ли в библиотеке .so изменить название функции?
Alexander
Ну, hex editor берешь и меняешь?
Alexander
Или objcopy --redefine-sym foo=bar mylib.so Но это не проверял
Andrei
Вот бы какой-нибудь из них умел build customizations вытаскивать!
Andrei
Но к сожалению сам CMake в них просто не умеет.
Vitaliy
Vitaliy
Мне всегда казалось, что вызов функции превращается в goto и заполнение стека, нет?
🐙 Antony
Мне всегда казалось, что вызов функции превращается в goto и заполнение стека, нет?
Если функция не экспортируется наружу - тогда да. Если функция экспортируется из .dll/.so то её имя (mangled имя в случае C++ linkage) торчит наружу
Vitaliy
Спасибо, очень полезно!
Шаурма
через ld preload своей либы и там определить функцию foo, которая будет вызывать bar из нужно либы. Но пока не понятно зачем менять имя функции
Алдар
call же
Andrei
mov [eax], eip
Andrei
(шутка)
Andrei
А какая разница в конечном итоге? всё равно потом jump на GetProcAddress()
Если что, то я понимаю какая разница. Inlining, попадание в кеш инструкций, упрощенная передача аргументов, и всё такое.
Andrei
Просто под описание «сложить в стек и сделать goto» — подходит что угодно.