170 похожих чатов

Результат std::bind (func) - функтор?

16 ответов

20 просмотров

Сама функция - не станет, очевидно. Функция от такого никоем образом не изменится А вот то, что возвращается из std::bind, вообще говоря, unspecified. Хотя почти всегда (а может и всегда) будет возвращен действительно функтор Другой вопрос, а к чему такие фокусы?

Aleksei-Budyakov Автор вопроса
Georgy Firsov
Сама функция - не станет, очевидно. Функция от так...

В функцию принимается функтор, поэтому функцию надо обернуть либо в std::bind(func) либо лямбду.

Aleksei Budyakov
В функцию принимается функтор, поэтому функцию над...

Это как так? Объект (произвольный в общем случае) с оператором скобочек принимается, а обычная функция - нет? template<typename F> void foo(F&& func) Там же ведь что-то вроде этого небось. Функцию сюда можно передать вполне

Aleksei-Budyakov Автор вопроса
Danya🔥
Функция не является функтором?..

Я пару часов назад тот же вопрос задал тут.

Aleksei-Budyakov Автор вопроса
Georgy Firsov
Это как так? Объект (произвольный в общем случае) ...

Хз что там внутри. У меня го ту дифинишн упирается в стену. Вообще вы правы. Функция оказалось оборачивалась потому что сигнатуре просто не соответствовала.

Danya🔥
Функция не является функтором?..

Ну, по определению, функтором принято называть объект класса, с определенным функциональным оператором. Так что функция не является функтором, следуя этому определению

Aleksei-Budyakov Автор вопроса
Georgy Firsov
Это как так? Объект (произвольный в общем случае) ...

Еще я вчера задавал вопрос о том как передать таким образом шаблон функции. Оказалось никак. Только функтор с шаблонным оператором https://godbolt.org/z/GffdWqcso

Aleksei Budyakov
Еще я вчера задавал вопрос о том как передать таки...

Шаблон функции или уже инстанциацию этого шаблона? Шаблон функции понятное дело никак не передашь, это даже никакой не callable

Aleksei Budyakov
Еще я вчера задавал вопрос о том как передать таки...

Шаблон функции не является объектом, функцией или чем либо ещё

Aleksei-Budyakov Автор вопроса
Danya🔥
Шаблон функции не является объектом, функцией или ...

То есть если я хочу шаблонный коллабл передать, то оборачивать в функтор с шаблонным оператором () или обобщенную лямбду ?

Aleksei-Budyakov Автор вопроса
Yalokin Kononov
ни то ни другое

Как же. В моем примере же работает

Aleksei Budyakov
Как же. В моем примере же работает

В твоем первом примере уже инстанцированная функция с конкретные шаблонными аргументами, это callable объект, а во втором случае нет, кстати с wrapper2 не компилируется код

Aleksei Budyakov
Еще я вчера задавал вопрос о том как передать таки...

Шаблон функции не является функцией, и функтором так же. То есть передавать нечего

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта