потокобезопасную очередь. Этот враппер работает только с функциями, не являющимися методами класса.
Вопрос - как поправить враппер, чтобы он работал бы еще и с методами классов?
МВП здесь - https://godbolt.org/z/bxeMca5ze , надо “запустить” строки 87 - 100. Буду признателен за помощь.
можете посмотреть на какой нибудь std::invoke https://en.cppreference.com/w/cpp/utility/functional/invoke там в примере реализации видно, либо можно отдельно перегрузку сделать для такого кейса
template<class C, class Pointed, class T1, class... Args> constexpr decltype(auto) invoke_memptr(Pointed C::* f, T1&& t1, Args&&... args) … Вот это имеете ввиду?
Так если совсем по тупому думать, ну напиши функцию, чтобы брала объект и вызвала его метод, и еë задавай в этот врапер
Не зайдет. Ее придется сделать глобальной и сделать там критическую секцию. Вызывать методы отдельных классов решает проблему API race. Но спасибо за идею.
Функции и так всегда глобальные, о чем ты? Про гонки - тоже ерунда, не решает это ничего, и проблемы нет
Обсуждают сегодня