Вопросы по теме 'std-function'

Динамически создавать общий указатель функции из указателя метода, выводя возвращаемое значение и параметры.
У меня есть этот вспомогательный класс, который я использую для вызова методов-членов для кода, ожидающего статических функций C. Эта конкретная «версия» совместима с обратными вызовами Windows LPTHREADROUTINE, принимая в качестве параметра функцию...
1396 просмотров

Создайте std::function с помощью конструктора на основе шаблона
Можно ли построить std::function с конструктором типа, определенного аргументом шаблона? Например: template <typename T> bool registerType() { const std::function<T()> func = &T::T; //I know this doesn't work //... }
1894 просмотров
schedule 26.12.2022

g++: std::function, инициализированный с типом закрытия, всегда использует выделение кучи?
В некоторых источниках в Интернете (в частности, в этом ) говорится, что std: :function использует оптимизацию с малым замыканием, например. он не выделяет кучу, если размер закрытия меньше некоторого объема данных (ссылка выше указывает 16 байтов...
2870 просмотров
schedule 30.03.2023

Почему тернарный оператор здесь не то же самое, что if-else?
Я использую std::function TR1 для реализации простого механизма обратного вызова. Если я не хочу, чтобы мне перезвонили, я регистрирую nullptr в качестве обработчика обратного вызова. Это компилируется и работает нормально: void...
687 просмотров

std :: function против шаблона
Благодаря C ++ 11 мы получили std::function семейство оберток функторов. К сожалению, я слышу только плохое об этих нововведениях. Самый популярный - то, что они ужасно медленные. Я протестировал его, и они действительно отстой по сравнению с...
61140 просмотров
schedule 23.04.2022

Функция по умолчанию, которая просто возвращает переданное значение?
Как ленивый разработчик, я люблю использовать этот трюк, чтобы указать функцию по умолчанию: template <class Type, unsigned int Size, class Function = std::less<Type> > void arrange(std::array<Type, Size> &x,...
5929 просмотров
schedule 29.10.2022

Может ли std::async вызывать объекты std::function?
Можно ли вызывать объекты-функции, созданные с помощью std::bind, с помощью std::async. Следующий код не компилируется: #include <iostream> #include <future> #include <functional> using namespace std; class Adder { public:...
4415 просмотров
schedule 02.09.2022

C++11: Как написать функцию-оболочку для создания объектов `std::function`
Я пытаюсь написать оболочку make_function , которая, как и std::make_pair , может создать объект std::function из подходящих вызываемых объектов. Как и make_pair , для указателя функции foo auto f0 = make_function(foo); создает...
4175 просмотров
schedule 05.08.2023

Используйте Lambda с состоянием в качестве параметра указателя функции
Я пытаюсь использовать лямбду с состоянием в качестве параметра указателя функции, здесь состояние означает, что оно захватывает из своего контекста. В соответствии с этой проблемой это незаконно: Почему неявное преобразование лямбда-функции в...
158 просмотров

С++ 11 std::function: привязка метода без конкретного экземпляра
Продолжая эту тему , я хотел бы разделить ее на другой, более конкретный вопрос. Я хочу связать функцию с помощью ChaiScript, и я могу сделать это с помощью std::function , но я не могу сообщить std::function , какую перегрузку следует...
1801 просмотров
schedule 21.06.2023

Синтаксис шаблона C++ std::function-like
В С++ 11 вы можете создать экземпляр std::function следующим образом: std::function<void(int)> f1; std::function<int(std::string, std::string)> f2; //and so on Но хотя информации о шаблонах с переменным числом аргументов в...
2014 просмотров

Инициализация класса с лямбдой, переданной в конструктор, C++11
Рассмотрим следующий пример: #include <functional> #include <iostream> using namespace std; class Caller { public: Caller(function<void()> callback) { callback(); } }; main() { #if defined(ONELINER) Caller caller =...
226 просмотров
schedule 08.06.2023

Использование std::function и bind для назначения функций с разными списками аргументов
Я пытаюсь иметь указатель функции, где в некоторых случаях ему либо назначается функция, принимающая 2 аргумента (cv::Mat и структура, содержащая параметры), либо другая функция, которая принимает 3 аргумента (те же 2 аргументы и список координат)....
1664 просмотров
schedule 19.12.2022

Вернуть список инициализаторов вместо вектора в std::function
Редактировать: Это не дублируется связанного вопроса (который также принадлежит мне). Здесь все возвращаемые типы std::vector . Я не хочу возвращать initializer-list . Я хочу заполнить возвращенный std::vector на initializer-list...
1711 просмотров

Почему std::function неявно не преобразуется в bool в С++ 11?
Рассмотрим следующий код. #include <functional> int main(void) { std::function<void()> f1; if (f1) { /* ok */ ... } bool b = f1; /* compile-error */ bool B = !f1; /* ok */ ... }...
982 просмотров

что происходит в std :: function operator () и std :: forward?
Я смотрел реализацию std::function и ее вызов operator() template<typename Ret, typename... ArgTypes> Ret function< Ret (ArgTypes...)>::operator()(ArgTypes...args) const { // some stuff return invoker(functor,...
541 просмотров

Параметр std::bind для функции-члена без объекта
Мне нужно привязать один параметр к функции-члену класса. Что-то вроде этого: #include <functional> #include <iostream> struct test { void func(int a, int b) { std::cout << a << " " << b <<...
1367 просмотров
schedule 11.01.2024

C++14: универсальная лямбда с универсальной функцией std::function в качестве члена класса
Рассмотрим этот псевдофрагмент: class SomeClass { public: SomeClass() { if(true) { fooCall = [](auto a){ cout << a.sayHello(); }; } else { fooCall = [](auto b){ cout...
1376 просмотров
schedule 14.02.2024

C++ std::function связывается из производного класса
Если бы у меня был базовый класс MessageWrapper с дочерним классом SetConfigurationData, почему привязка с параметром дочернего класса не работает? Разве это не должно работать полиморфно? Class MessageHandler { public: void...
875 просмотров
schedule 13.03.2023

Вызовите любую функцию-член объекта в списке объектов, используя std::function
У меня есть список объектов, где мне нужно вызвать функцию-член — пока ничего особенного: перебрать список, сделать этот вызов — готово. Теперь у меня есть несколько мест, которые делают почти то же самое в одном и том же списке, за исключением...
84 просмотров
schedule 11.05.2023