передаче параметров маленький. Пишу снифер на libtins и есть такая структура:
struct Snifer{
void Init(){
SnifferConfiguration config;
config.set_promisc_mode(true);
config.set_immediate_mode(true);
Sniffer sniffer("en0", config);
sniffer.sniff_loop(bind(&Snifer::handle, this, std::placeholders::_1));
}
bool handle(PDU& some_pdu){
std::cout << "lol" << std::endl;
return false;
}
};
Как я понял с документации по bind первым параметром передается функция, а остальное параметры в эту функцию. This указывает на саму структуру Snifer. Возвращается std::function, который и передается в sniff_loop (sniff_loop будет кидать пакеты которые PDU в хендлер)
Дальше решение было найдено методом тыка тк я чего-то не понимаю
Почему передается два параметра, this и первый параметр _1, если в функции handle только один параметр? Если убрать this то оно падает с ошибкой вызова "нет такой функции для вызова"
bind - зло, лямбды в помощь
Он не нужен уже , юзай лямбды.
Даже нет смысла разбираться с этим говном.
Это реально была не лучшая часть STD.
Обсуждают сегодня