По поводу колбэка кто спрашивал, зачем там move. Прошу прощения, не сразу поняли вопрос. Там вызывается OnceCallback. Именно по этому он вызвался через move.
Все равно не понятно. В показанном коде, время жизни объекта callback ограничено областью функции, в которую он был передан и вызов move становится бессмысленным.
Все равно не понятно. В показанном коде, время жизни объекта callback ограничено областью функции, в которую он был передан и вызов move становится бессмысленным.
Провангую: метод имеет перегрузки по ref qualifiers, поэтому скорее всего оптимизирован для *this &&
Все равно не понятно. В показанном коде, время жизни объекта callback ограничено областью функции, в которую он был передан и вызов move становится бессмысленным.
он туда не копировался а мувился) по этому время жизни у него не ограничено этой функцией. А мувился он потому что у него констуктор копирования и оператор присваивания = delete. Ну и + соглашение гугла, которое они проверяют на этапе компиляции, что Oncecallback должен вызываться только с move вместе.
По поводу колбэка кто спрашивал, зачем там move. Прошу прощения, не сразу поняли вопрос. Там вызывается OnceCallback. Именно по этому он вызвался через move.
Всё равно неясно. Move может на, что-то повлиять, только если у метода есть &&-спецификатор вызова. Ведь move это просто каст, он ничего больше не делает
У меня глаз цепляется за один мув, который потом никуда не передаётся)
Ну, перегрузка для && - вообще редкий случай. Но в шаблонном коде с F&& f ведь пишут std::invoke(std::forward<F>(f)) (акцент на forward), чтобы вызвался нужный operator (), тут практически тоже самое
вопрос по такой сущности на конференции, как "мастер классы" - что это такое вообще? поскольку их не записывают и не выкладывают и их аналогов нет на митапах и прочих мероприятиях, то не ясно нужно ли их хотеть, имеет ли смысл за них платить, и имеет ли их смысл пытаться провести.
что это за звери такие? хотелось бы примеров наглядных.