Ned
Нуну, ебать, и настолько же дополняемая, открытая и бесплатная
Platon
Ну, тебя же не устраивает опенсорс малварь в виде винды
Platon
а безопасность линукса и его 0day уязвимости
Platon
дажн не знаю
Platon
Не впечатляет
Platon
;)
Ned
Хоть я ни строки в линь и не вкинул, но зато могу его собрать и сконфижить как влезет.
Ned
Так что линь мой бро
Ned
Но суть в том, что собираюсь как раз-таки вкинуть пару строк, а потому надо научиться код читать и понимать
Square
Это ж асм скорее всего, совсем трудно. Но нужно. Или есть че?
хм, собсно оно вот оно лежит. я думал гх чпокает такое... https://github.com/hzeroo/Carberp
Square
for fun интересно почитать
Square
хотя местами уже отстало есесна
Ned
Больше всего мне впёр массив байтов const unsigned char DLL[] ={....}; в файле 1.cpp
Square
дроппер короче - стандартная тема - почти все так нынче заражают
Square
млин, слишком много чятов
Constantine
А существует какой-нибудь способ заставить любого потомка класса при перегрузке виртуального метода вызывать метод предка?
Constantine
struct Loadable { virtual ~Loadable(){}; virtual bool load() = 0; }; struct LoadableBase: Loadable { virtual bool load() override { /**/ } }; struct ConcreteLoadable: LoadableBase { virtual bool load() override { //тонная кода с типовой ошибкой: //так и не вызван метод предка } };
Nikita
А существует какой-нибудь способ заставить любого потомка класса при перегрузке виртуального метода вызывать метод предка?
Может, не стоит нужный код предка делать виртуальным? А виртуализировать другой метод и его вызывать?
Constantine
Может, не стоит нужный код предка делать виртуальным? А виртуализировать другой метод и его вызывать?
Ну вот конкретный пример. В самом неприятном случае это будет большАя цепочка наследования
Ned
/warn offtop, flood
Одмена варнишь, бро
Constantine
И вызвать нужно по всей цепочке?
Метод load() делает первоначальную загрузку данных в компонент, так что он будет перегружен у каждого класса. Как правило, компонент перевызывает предка (всегда) ;)
Constantine
При этом компонент должен определять момент вызова предка, иногда это важно
Ned
sanchaez/pso-extremities https://github.com/sanchaez/pso-extremities
Чот я прочитал и понял что нихера не помню С++
Ned
Но стиль неплох, мне нравки
Ned
И даже нашел опечатку
Ned
Constantine
> std::function самое большое разочарование в моей жизни
Processor
sanchaez/pso-extremities https://github.com/sanchaez/pso-extremities
запустить запустил, но не понял что это
Processor
измеряет время алгоритмов чтоли?
Олександр
Это алгоритм нахождения минимума функции методом Partical Swarm Optimization
Олександр
Измеряет время и точность
Олександр
У меня тут небольшое исследование будет
Anonymous
QQ ALL
Constantine
Да, там в методе потомка надо писать ::метод предка
Ну метод "написать в документации, что это нужно сделать ОБЯЗАТЕЛЬНО", такой себе
Олександр
Можно кастовать this 🌚
Ioann_
https://github.com/openhomm/openhomm можешь мое поревьюить
Визуально - кода мало. Это точно hmm3 :?
Ioann_
Нахрена на асме малварю писать, кроме инжектед?
Драйвера и прочие штуки которые должны избегать взора АВ :)
Ioann_
Кстати, через asm, вы Константин - и сможете без проблем вызвать метод родителя. Только это UB.Но я думаю, что на gcc, шланге и msvc все ок будет
Constantine
Кстати, через asm, вы Константин - и сможете без проблем вызвать метод родителя. Только это UB.Но я думаю, что на gcc, шланге и msvc все ок будет
У меня нет проблем с вызовом, у меня есть проблема, что каждый 20 раз я таки забываю написать эту строку кода
Ioann_
Даже если задефайнить :?
Ioann_
Ну, в данном случае это как в qt q object дефайн забыть :)
Constantine
Сделай чекер в commit hook
Угу, а потом окажется, что вызвано только в одной ветке
Berkus
Сделай на сервере
Constantine
Сделай на сервере
void Some::load() { if (simpleCase()) { __super::load(); return; } //многобукав }
Berkus
И что
Constantine
И как я это проверю
Berkus
Все это решается кланговским анализатором ast
Berkus
Достаточно легко
Ioann_
Ага, значит рефликсию ждать :D
Berkus
Ага, значит рефликсию ждать :D
зачем, достаточно http://eli.thegreenplace.net/2014/07/29/ast-matchers-and-clang-refactoring-tools
Aidar
Ну метод "написать в документации, что это нужно сделать ОБЯЗАТЕЛЬНО", такой себе
Тебе всеравно придется написать про то что для нормальной работы этой дрисьни сначала должен быть вызван init
Aidar
Кстати есть костыльный способ
Aidar
Вернуть из метода то что может быть создано только в самом верхнем паренте
Aidar
Ну или на подобную фигню завязаться
Aidar
Только надо чтобы оно что-то значило, чтобы юзвери не думали что это дикий костыль
Ioann_
Да я пользовался этой фигней. Такое себе удовольствие.
Vladislav
Ну вот конкретный пример. В самом неприятном случае это будет большАя цепочка наследования
А как это должно работать в случае множественного наследования?
Aidar
Ахах
Aidar
Орнул с Ника исенбаева
Vladislav
Орнул с Ника исенбаева
так он давно уже)
Aidar
так он давно уже)
Так я тут давно не был
Anton
Думаю, будет полезно. http://mobile.opennet.ru/opennews/art.shtml?num=46820
Constantine
А как это должно работать в случае множественного наследования?
Случаев множественного наследования нет, как и perfrormance критичности
@ENERGY_STAFF
что означает строчка std::vector<std::pair<std::string, std::string»::const_iterator it;?
Олександр
итератор по вектору пар строк
Bohdan
std::vector<std::pair<std::string, std::string»::const_iterator it; итератор на вектор
Serge
Что делать, если понимаешь, что чужой кусок кода идеально правильное решение алгоритма, а самолюбие не позволяет его использовать.
Ruslan
ну стлом же пользуешься
Ruslan
вот и не заморачивайся
Ruslan
да, к стате