Описание тега std-function

A C++11 class template that is callable like a function, and wraps another callable type and forwards calls to it.
2 ответа

Вывод типа шаблона с помощью std::function

Я обнаружил следующее поведение с std::function и тип вычета, который был неожиданным для меня: #include <functional> template <typename T> void stdfunc_test(std::function<T(T)> func) {}; int test_func(int arg) { return arg + 2; } …
26 авг '16 в 19:30
3 ответа

Как std:: function<std:: option <T>()> совместима с лямбда-кодом, возвращающим T?

Я могу создать std::function это возвращает std::optional&lt;Foo&gt; и назначил лямбду, которая возвращает Foo к этому. Может кто-нибудь подробно объяснить, как это возможно? простой пример: #include &lt;iostream&gt; #include &lt;optional&gt; #inclu…
30 июл '18 в 12:33
1 ответ

Проксирование std::function через наследование

Я имею дело с необработанными указателями на функции, которые могут быть недопустимыми (указывать на неправильную функцию) / нулевыми, если приложение (источник недоступен) взаимодействует с обновлениями. Я хочу создать класс, который наследовал бы …
07 ноя '15 в 00:17
0 ответов

Visual C++ функции и проблемы связывания

У меня есть класс, который работает с файлами, конструктор получает функцию std:: для отправки статуса работы в библиотеку GUI, если она используется. Декларация: DASM(std::string filename, std::function&lt;void(unsigned int, unsigned int)&gt; f = n…
09 апр '14 в 06:55
6 ответов

C++11 std::set лямбда-функция сравнения

Я хочу создать std::set с пользовательской функцией сравнения. Я мог бы определить это как класс с operator(), но я хотел насладиться возможностью определения лямбда-выражения, где он используется, поэтому я решил определить лямбда-функцию в списке …
15 фев '13 в 13:40
2 ответа

Инициализация std::function в родительском классе с использованием члена в производном классе

У меня есть родительский класс, который выглядит примерно так: class Parent { Parent(std::function&lt;double(double)&gt; func); }; и производный класс, который выглядит примерно так: class Derived : public Parent { const double val; double MyFunc(do…
06 сен '14 в 15:24
1 ответ

C++ shared_ptr std::bind и std::function

У меня есть следующее: учебный класс B слушает boost::signal2 класса C и при срабатывании выполнит обратный вызов, заданный классом A и это выполняет метод в классе A A, B а также C, D являются все std::shared_ptr, Проблема в том, что когда класс D …
01 авг '17 в 14:40
2 ответа

Как использовать обратные вызовы в C++?

Я пытаюсь использовать обратные вызовы в C++, используя std::function, У меня есть два файла, mainwindow.cpp а также tcpclient.cpp, Функция-член mainwindow передается tcpclient в порядке вызова переданной функции, когда происходит определенное событ…
25 дек '17 в 02:21
1 ответ

Передача пользовательского удалителя в std::unique_ptr с помощью объекта std::function

У меня есть следующий рабочий код для инициализации std::unique_ptr с пользовательским удалителем: class Dataset { ... private: class CustomGDALDatasetDeleter { public: void operator()(GDALDatasetH res) const { ::GDALClose(res); } }; using ResourceT…
06 июл '14 в 22:30
2 ответа

Заменить значения вызова для std::function

Я сохранил std::function, которые являются результатами std::bindв списке: typedef std::pair&lt;int, std::function&lt;void(HDC)&gt;&gt; myPair; std::list&lt;myPair&gt; *paintJobs; paintJobs = new std::list&lt;myPair&gt;(); Я тогда добавляю что-то вр…
09 фев '17 в 18:37
2 ответа

Ошибка передачи std::function против указателя на функцию в качестве параметра

У меня есть следующий кусок кода, в котором я объявляю 2 функции, которые принимают функцию в качестве параметра (одна с помощью std::functionдругой с помощью указателя на функцию). Функция, взятая в качестве параметра, должна иметь прототип std::co…
26 май '14 в 22:53
1 ответ

Ошибка: выражение не может быть использовано как функция

Я новичок в lambdas, я сделал свой собственный класс двоичной кучи с пользовательской функцией компаратора. Все шло хорошо, пока я не получил ошибку компиляции, и я не знаю, как исправить. Я попытался немного изменить мою строку кода вместо this(cap…
1 ответ

Позволят ли аргументы шаблона C++17 с автоматической функцией ограничивать объекты std::function?

С появлением в C++17 функции не типовых аргументов шаблона с auto, можно будет реализовать std::function таким образом, чтобы можно было, например, поставить следующие функции: bool f(int n, double d) {} bool g(bool b, char c) {} bool h(bool b) {} в…
27 сен '16 в 14:19
2 ответа

Метод класса, принимающий лямбда-выражения, представляющие функции различного числа аргументов

Я хотел бы передать функции в метод универсального класса, чтобы универсальный класс мог вызывать функции, не требующие аргументов, одного аргумента, двух аргументов и т. Д. Я видел различные шаблоны, но мне не нравится синтаксис. Предыдущий вопрос …
09 янв '19 в 18:49
1 ответ

Проверяет ли std::function() тип при компиляции кода в C++11 в VS2010?

Я использую std::function() в моем коде с C++11 и VS2010. Вот мой код function&lt;string (string)&gt; myfunc = 3; myfunc(string()); Очевидно, что код неверный, для myfunc объект не инициализирован должным образом. myfunc объект должен оцениваться fu…
02 май '13 в 19:09
1 ответ

Создайте std::function с помощью конструктора на основе шаблона

Можно ли построить std::function с конструктором типа, определенного аргументом шаблона? Например: template &lt;typename T&gt; bool registerType() { const std::function&lt;T()&gt; func = &amp;T::T; //I know this doesn't work //... }
12 сен '12 в 11:03
1 ответ

boost::factory и std::function

Я пытаюсь преобразовать код в C++11 на GCC 4.7.2. Часть кода включала присвоение boost::factory к boost::function, Однако компиляция завершается с большим количеством предупреждений, если я изменю ее на std::function, Вот пример кода, который воспро…
04 ноя '13 в 23:31
1 ответ

Ошибка использования std::bind и std::function в C++

Я пытаюсь попробовать мой фрагмент метода Ньютона на многомерной функции и использовал std::bind а также std::function, Но я застрял на ошибке ошибка: требуется преобразование из 'std::_Bind_helper&, int>::type {aka std::_Bind, int))(double, double,…
04 ноя '16 в 14:49
2 ответа

std::function как параметр в конструкторе делегата

Я хочу знать, почему управление не переходит к AB(), если я передал abc(AB) в main(), так как управление идет для инициализации i как 10, когда передается abc(10) class abc { int i; std::function&lt;void(void)&gt;func = nullptr; public: abc(){} abc(…
10 июн '18 в 06:15
2 ответа

Функциональные объекты против состояния

Я использовал функциональные объекты, чтобы узнать, что происходит с объектом, который передается, и как это влияет на состояние объекта. Вот фрагмент кода теста: #include &lt;iostream&gt; //#include &lt;boost/function.hpp&gt; //using boost::functio…
03 фев '16 в 06:21