Вопросы по теме 'std-function'
Почему экземпляры std::function имеют конструктор по умолчанию?
Наверное, это философский вопрос, но я столкнулся со следующей проблемой:
Если вы определите std::function и не инициализируете ее правильно, ваше приложение рухнет, например так:
typedef std::function<void(void)> MyFunctionType;...
14245 просмотров
schedule
12.11.2022
Параметры шаблона типа функции C++ 11 с переменным числом аргументов
Возможный дубликат: Что означает токен?
Существует относительно новый способ прямого указания типов функций (по крайней мере, в качестве параметров шаблона). Не знаю, строго ли это С++ 11, но я столкнулся с этим, читая заголовки STL...
589 просмотров
schedule
14.09.2022
Использование аргументов шаблона 'void' в C++
Возьмем следующий минимальный пример:
using Type1 = std::function<void(void)>;
template <typename T>
using Type2 = std::function<void(T)>;
Type1 whyDoesThisWork;
Type2<void> andYetThisDoesNot;
Если псевдоним второго...
36727 просмотров
schedule
21.05.2022
C++ Как ссылаться на шаблонные функции с помощью std::bind/std::function
Если у вас есть шаблонный класс или шаблонная функция (или их комбинация), как вы привязываете эту функцию (сохраняя параметр типа шаблона)?
Мне дали некоторую помощь по основному синтаксису в посте ниже, чтобы привязать к функциям с явными...
17625 просмотров
schedule
03.08.2022
Как получить этот указатель из std::function?
Поскольку std::function может содержать функции-члены, он должен где-то хранить указатель на экземпляр объекта.
Как я могу получить указатель this из std::function , содержащего функцию-член?
1361 просмотров
schedule
03.07.2022
FastDelegate и lambdas - не могу заставить их работать (самые быстрые делегаты Дона Клагстона)
Я пытаюсь создать реализацию C++11 Указатели функций-членов Дона Клагстона и самые быстрые делегаты C++ , и заставить его работать как вставную замену std::function .
Вот что у меня получилось.
Я создаю лямбда FastDelegates следующим...
2486 просмотров
schedule
19.09.2023
Используйте std::bind для привязки к родительской версии виртуальной функции.
Я хочу создать объект std::function для версии родительского класса виртуальной и переопределенной функции, см. следующий пример:
#include <iostream>
#include <functional>
class Parent
{
public:
virtual void func1()...
216 просмотров
schedule
28.01.2023
реализация делегата c ++, как найти конкретную функцию-член класса
Я изучаю, как реализовать простые делегаты с помощью С ++ 11. Проблема в методе отключения, я хотел бы указать конкретную функцию конкретного объекта, который нужно удалить с карты. В этой реализации я стираю все функции, связанные с конкретным...
269 просмотров
schedule
10.03.2022
Разрешает ли std::function неявное приведение по ссылке для копирования возвращаемого типа?
В приведенном ниже фрагменте кода компилятор молча преобразует указатель функции возврата по копии в функцию возврата по константной ссылке std::function. При вызове экземпляра std::function возвращается ссылка на копию, и приложение аварийно...
724 просмотров
schedule
08.04.2023
Вызов одной шаблонной функции не работает
Я не знаю, как вызвать функцию call .
Это шаблонный класс с шаблонным вызовом функции. Но как я могу использовать этот код?
#include <iostream>
#include <conio.h>
#include <functional>
template <typename Result> class...
91 просмотров
schedule
18.04.2023
Вектор std::function с разными сигнатурами
У меня есть несколько функций обратного вызова с разными подписями. В идеале я хотел бы поместить их в вектор и вызвать соответствующий в зависимости от определенных условий.
e.g.
void func1(const std::string& value);
void func2(const...
12667 просмотров
schedule
07.03.2023
Почему функция GCC std::function не использует ссылки rvalue на аргументы, передаваемые по значению, для передачи их между своими внутренними делегатами?
Сначала рассмотрим следующий код:
#include <iostream>
#include <functional>
struct Noisy
{
Noisy() { std::cout << "Noisy()" << std::endl; }
Noisy(const Noisy&) { std::cout << "Noisy(const Noisy&)"...
1242 просмотров
schedule
26.02.2023
Понимание аргумента шаблона для std::function в С++ 11?
Я освежаю некоторые С++ 11, и мне немного трудно что-то понять.
std::function позволяет мне передавать любой тип Callable как объект функции. Я знаю , что он делает и как его использовать.
void foo(int a, int b) {}
std::function<void...
391 просмотров
schedule
30.07.2022
Различные перегрузки с параметрами std::function неоднозначны с привязкой (иногда)
У меня есть две перегрузки функции foo , которые принимают разные std::function , что приводит к проблеме неоднозначности для последнего при использовании с результатом std::bind . Я не понимаю, почему только это двусмысленно.
void...
1182 просмотров
schedule
20.08.2023
Шаблоны с переменными числами, вывод типов и std :: function
Я пытаюсь создать функцию-шаблон, в которую можно передать какую-либо другую функцию с любым типом и количеством параметров и привязать ее к std::function . Мне удалось это сделать:
#include <iostream>
#include <functional>
int...
613 просмотров
schedule
24.03.2022
Нечетное поведение возврата с std :: function, созданным из лямбда (C ++)
У меня проблемы с std :: functions, созданными из лямбда-выражений, если функция возвращает ссылку, но тип возвращаемого значения не вызывается явно как ссылка. Кажется, что std :: function создается нормально, без предупреждений, но после ее вызова...
2507 просмотров
schedule
09.03.2022
неразрешенный тип перегруженной функции со статической функцией в std::function
Я получаю сообщение об ошибке «неразрешенный тип перегруженной функции» при попытке передать перегруженную статическую функцию в std::function .
Мне известны похожие вопросы, такие как это и это . Однако, несмотря на то, что ответы там...
996 просмотров
schedule
06.05.2022
Преобразование между std::function с разными сигнатурами (T* arg в void* arg)
Есть ли способ преобразовать std::function с аргументом T* в аналогичный с аргументом void* ? Это кажется возможным, поскольку вызовы должны быть совместимы на двоичном уровне.
Например, как я могу заставить это работать, не превращая...
183 просмотров
schedule
26.05.2023
Получить имя std::function
В следующем игрушечном примере я хотел бы получить имя функции. Сама функция была задана как аргумент std::function . Возможно ли в С++ получить имя объекта std::function ?
void printName(std::function<void()> func){
//Need a...
8456 просмотров
schedule
15.02.2023
C++17: ошибка преобразования лямбда в std::function
В настоящее время я изучаю дополнения С++ 17. После поиска с std::variant захотелось использовать и std::optional в том же примере . В настоящее время видим, что компиляция не выполняется из-за следующей ошибки:
error: no viable...
2078 просмотров
schedule
13.10.2022