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

Такой вопрос появился: как можно вернуть из функции функцию

в плюсах (или можно вообще так)?

12 ответов

13 просмотров

а какую функцию?

std::function<int(…)> func() {}

Можно, от функции зависит как лучше это сделать (std::function может быть оверкиллом, но как универсальный вариант пойдет)

飴が欲しいだよ-In Spaikka Автор вопроса
Max Kolesnikov
Можно, от функции зависит как лучше это сделать (s...

using funcType = int(*)(int); typedef int(*funcType)(int); ещё такой вариант нашёл. std::function обёртка как понял и наверно в обычных случаях лучше использовать тайпалиасы?

飴が欲しいだよ In Spaikka
using funcType = int(*)(int); typedef int(*funcTyp...

Мне больше нравится запись using FuncType = std::add_pointer_t<int(int)>; Вместо классической. Сигнатуру гораздо лучше видно В случае возврата указателей на свободные функции std::function в общем-то и не нужен, можно ограничиться голыми указателями

Max Kolesnikov
Мне больше нравится запись using FuncType = std::a...

Вообще, при возврате чего-то конкретного, лучше писать auto (или на худой конец концепт), чтобы не привязываться к тому, указатель это или что-то стейтфул. std::invocable<int> auto foo() { return [](int i) {}; } (на этом моменте можно начать грустить, что std::invocable не смотрит на возвращаемый тип)

Alexander Karaev
Вообще, при возврате чего-то конкретного, лучше пи...

Дождаться бы еще концептов в продакшн-коде...

Max Kolesnikov
Дождаться бы еще концептов в продакшн-коде...

Ну, да. Это скорее теоретические рассуждения

Alexander Karaev
Ну, да. Это скорее теоретические рассуждения

А есть invocable с учетом возвращаемого типа? regular_invocable я так понимаю это про другое

Max Kolesnikov
А есть invocable с учетом возвращаемого типа? regu...

regular_invocable - синоним invocable с точки зрения реализации. У них отличия на идейном уровне и компилятором не проверяются. invocable с возвращаемым типом нет, но я предполагаю, что для гипотетического invocable_r<Ret, Args...> не ясно, это same_as<Ret, T> или convertible_to<Ret, T> (как и в requires нельзя написать { f() } -> Ret)

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта