Вопросы по теме 'std-function'
Динамически создавать общий указатель функции из указателя метода, выводя возвращаемое значение и параметры.
У меня есть этот вспомогательный класс, который я использую для вызова методов-членов для кода, ожидающего статических функций C. Эта конкретная «версия» совместима с обратными вызовами Windows LPTHREADROUTINE, принимая в качестве параметра функцию...
1396 просмотров
schedule
27.05.2022
Создайте 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 просмотров
schedule
20.04.2022
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 просмотров
schedule
16.03.2023
С++ 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 просмотров
schedule
31.12.2022
Инициализация класса с лямбдой, переданной в конструктор, 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 просмотров
schedule
24.06.2022
Почему 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 просмотров
schedule
03.07.2022
что происходит в 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 просмотров
schedule
05.04.2023
Параметр 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