Std-Function – вопросы и ответы

63
голоса
2
ответа
Скажем, у меня есть class Foo { public: Foo(std::function<void(std::string)> callback1, std::function<void(int)> callback2) : callback1(callback1), callback2(callback2) { } private: std...
6 дней, 4 часа назад Vanilla Gorilla
88
голосов
2
ответа
Рассмотрим этот псевдо-фрагмент: class SomeClass { public: SomeClass() { if(true) { fooCall = [](auto a){ cout << a.sayHello(); }; } else { fooCall = [](auto b){ cout << b.sayHello(); }...
6 дней, 8 часов назад Juergen
145
голосов
1
ответ
В принципе, я хотел бы иметь следующую семантику: #include <functional> #include <iostream> class test { public: void add(std::function<void()> f) { f(); } void operator()() { ++x...
1 неделя назад Julio Guerra
83
голоса
2
ответа
Есть ли различия? Каков наилучший способ "сохранить/перенести"? function<void(int)> fcn = [](int par) {std::cout<<"fcn: "<<par<<std::endl; }; void(*fcn_a)(int) = [](int par)...
1 неделя, 1 день назад Person.Junkie
73
голоса
1
ответ
Я работаю над библиотекой Component Component System для обучения, и я пытаюсь внести существенные изменения в свой дизайн. Я собираюсь разбить систему class System с одним вызовом update на нескол...
1 неделя, 2 дня назад Mathieu Van Nevel
83
голоса
1
ответ
В чем преимущество хранения лямбда-функции в std::function по сравнению с auto variable . Например, в приведенном ниже коде я храню лямбду в variable f1 а не в std::function f . #include <iostre...
1 неделя, 3 дня назад cherry aldi
62
голоса
2
ответа
У меня есть класс Door который реализует метод LockCheck() и класс Stove с помощью метода BurnerCheck() . Я хочу класс House который принимает аргумент конструктора либо Door::LockCheck либо Stove:...
1 неделя, 4 дня назад BoltzmannBrain
63
голоса
1
ответ
Я пытаюсь написать шаблон наблюдателя в c++, поэтому у меня есть карта, содержащая eventname → вектор функций обратного вызова Функции обратного вызова сохраняются в векторе как std::function<vo...
1 неделя, 4 дня назад stack user
-5
голосов
1
ответ
Я работаю над c++ 11. Я хочу написать функцию funA в классе, которая связывает другую функцию funB внутри одного класса. Функция funB является параметром функции funA. Что может быть синтаксисом fu...
2 недели назад SuryaRao
114
голосов
7
ответов
У меня есть несколько функций обратного вызова с разными сигнатурами. В идеале я хотел бы поместить их в вектор и вызвать соответствующий в зависимости от определенных условий. например. void func1...
2 недели назад ksl
51
голос
1
ответ
Недавно я работал с некоторым кодом, который использует std::vector из std::unique_ptr<T> с пользовательским удалением типа std::function<void(T*)> . Код пытается удалить значения, соот...
2 недели назад dbaston
82
голоса
1
ответ
Я хотел бы инкапсулировать назначение функторов функции std:: в метод. Вместо передачи std:: function или указателя на std:: function я должен передать функторы, которые наследуются от общего слота...
2 недели, 1 день назад spinxz
51
голос
1
ответ
Я хочу закодировать минимальный класс делегата multicast. Его интерфейс состоит из трех операторов operator() для вызова делегата и operator+ =/operator- = для добавления/удаления вызываемых типов,...
2 недели, 1 день назад Jack Johansson
101
голос
1
ответ
У меня есть класс С++, называемый Graph, и он имеет метод алгоритма for_each_node(). Я могу либо сделать его шаблоном, например: template <class UnaryFunction> UnaryFunction Graph::for_each_n...
2 недели, 1 день назад cfa45ca55111016ee9269f0a52e771
97
голосов
1
ответ
Я имею дело с системой C, которая предлагает крючок этой формы: int (*EXTENSIONFUNCTION)(NATIVEVALUE args[]); Можно зарегистрировать EXTENSIONFUNCTION и количество аргументов, которые он принимает....
2 недели, 1 день назад HostileFork
81
голос
2
ответа
Мне было интересно узнать основные отличия, плюсы и минусы в написании функции более высокого порядка, в качестве входного параметра, std::function или ссылки пересылки, например. template<typen...
2 недели, 2 дня назад FdeF
87
голосов
1
ответ
Я новичок в std::function и использую его для тривиальных задач. Один из моих проектов передает std::string в std::function() - но теперь я бы хотел вместо этого передать rapidjson::Document . Поче...
2 недели, 2 дня назад user0000001
72
голоса
1
ответ
Я хочу динамически связать общую библиотеку и назначить функцию из нее в std::function . Вот код: function.cpp: #include <array> #ifdef __cplusplus extern "C" { #endif double function(std::ar...
2 недели, 2 дня назад Oleg Yablokov
80
голосов
1
ответ
Я посмотрел на другой вопрос относительно std:: function и почему он медленный, но я все еще не убежден/не понимаю. Я запускал программу из вопроса с несколькими изменениями. #include <iostream&...
2 недели, 2 дня назад Curious
125
голосов
2
ответа
В С++ 11 вы можете создать экземпляр std:: function следующим образом: std::function<void(int)> f1; std::function<int(std::string, std::string)> f2; //and so on Но пока есть много инфор...
2 недели, 3 дня назад Smiles
50
голосов
2
ответа
Я хотел бы создать свой собственный класс шаблонов для Thread. В качестве аргументов шаблона я хотел бы задать: функцию, которая будет вызываться при запуске потока, класс параметра, переданный ран...
2 недели, 3 дня назад karlkar
97
голосов
1
ответ
Можно ли вызвать объекты функции, созданные с помощью std:: bind, используя std:: async. Следующий код не скомпилируется: #include <iostream> #include <future> #include <functional&g...
2 недели, 3 дня назад Huhwha
106
голосов
1
ответ
Я довольно новый, и я пытаюсь придумать пример, чтобы помочь мне понять полиморфизм, стирание стилей и использование std :: function. Я пытаюсь понять, создав этот примерный класс, который может пр...
2 недели, 4 дня назад Hermes
95
голосов
1
ответ
У меня есть следующая функция typedef std::function<void(const data<3> & data, void * userData )> callbackFnc; и некоторая структура typedef struct { callbackFnc callback; void * us...
2 недели, 5 дней назад Bill Lumbert
76
голосов
1
ответ
Известно, что std::function имеет проблемы с производительностью, поскольку он может выполнять распределение кучи. Допустим, если вы на 100% честны, одно распределение кучи вряд ли будет проблемой ...
2 недели, 5 дней назад Damon
54
голоса
1
ответ
У меня есть класс на основе QThread, в основном поток GUI. В этой теме я использую другой класс, который имеет определение типа этой функции: void SomFunc(const std::function<void (int, std::str...
2 недели, 6 дней назад zawarasal
62
голоса
2
ответа
Это относится к функторам void(), но это нормально со мной... struct Foo { void Bar(int x) { std::cout << x << std::endl; } }; struct VoidBind { typedef void result_type; template<ty...
3 недели, 1 день назад user1715664
129
голосов
1
ответ
У меня есть функция-член с переменным числом параметров, хранящаяся в std::function , и я хочу связать экземпляр и получить независимый объект функции. template <class T, class R, class... Args&...
3 недели, 1 день назад lucas clemente
63
голоса
1
ответ
У меня есть следующий код: static std::vector<std::multimap<float, std::function<void(void)> > > LoadedDelegates; std::function<void(FVector2D, std::function<void(ASwatterFl...
3 недели, 2 дня назад Rael
63
голоса
2
ответа
Мне понадобилось что-то вроде std :: function, но затем я нашел это быстрее (как утверждает автор) и даже может сравниться с оператором ==. Я адаптировал его для разрешения динамического типа возвр...
3 недели, 5 дней назад Yves Henri
147
голосов
5
ответов
Возьмем следующий минимальный пример: using Type1 = std::function<void(void)>; template <typename T> using Type2 = std::function<void(T)>; Type1 whyDoesThisWork; Type2<void>...
3 недели, 5 дней назад Nick Hutchinson
51
голос
3
ответа
Позвольте мне продемонстрировать, что я имею в виду. #include <functional> #include <iostream> class MyClass { private: int number; public: MyClass() { number = 0; } void printNumber() ...
3 недели, 5 дней назад whoosy
53
голоса
1
ответ
У меня есть следующий рабочий код для инициализации std::unique_ptr с пользовательским удалением: class Dataset { ... private: class CustomGDALDatasetDeleter { public: void operator()(GDALDatasetH ...
3 недели, 6 дней назад Matthias Preu
85
голосов
1
ответ
Я слышал, что стоимость std::function тяжелее, чем auto для работы с лямбда-функцией. эффективный современный С++ item5. Я хочу пояснить механизм, почему std::function использует больше памяти, чем...
3 недели, 6 дней назад Daniel Lee
136
голосов
3
ответа
Рассмотрим эту функцию шаблона: template<typename ReturnT> ReturnT foo(const std::function<ReturnT ()>& fun) { return fun(); } Почему компилятор не может вывести ReturnT из прошедше...
4 недели назад Karl von Moor
53
голоса
1
ответ
У меня проблема с моим шаблоном. У меня есть 3 разных коллекции, и у меня есть итераторы для коллекций. Теперь мне нужно создать шаблон функции "apply", который будет делать следующее: 1. Пропустит...
4 недели назад user7374044
52
голоса
1
ответ
Я пытался реализовать следующую функцию: MonsterFunction(f)(x)(y,z)(g)(r); Где f - функция, которая принимает три параметра. x, y, z - параметры, которые передаются функции f и все это передается ф...
4 недели, 1 день назад Gigaxel
51
голос
1
ответ
Я определил класс State<> чтобы принять универсальный std::function<> список вызываемых параметров: template <typename T> class State; template <class RV, class... Args> cla...
4 недели, 1 день назад barney
88
голосов
1
ответ
Я не понимаю ошибки в этом. Я пытаюсь использовать std::function для передачи функции-члена в качестве аргумента. Он отлично работает, за исключением четвертого и последнего. void window::newGame()...
1 месяц назад Matt
95
голосов
4
ответа
Я рассказываю о лучшем способе реализации шаблона стратегии на С++. До сих пор я всегда использовал стандартный способ, где контекст имеет указатель на базовый класс стратегии следующим образом: cl...
1 месяц назад gcswoosh
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема