Я пытаюсь передать функцию (f1) через другую функцию (f2), но не нужно указывать f1.
Пример кода
Class C {
private: std::deque<T*> queue;
public: edit_queue(std::function<void(T*)> f1, void* input);
};
C::edit_queue(...){
queue.f1(input);
}
Однако это не компилируется с ошибкой:
no member named 'f1' in 'std::__1::deque<T *, std::__1::allocator<T *> >
Я хотел бы иметь возможность сделать и:
edit_queue(push_back, T* input); (1)
и
edit_queue(push_front, T* input); (2)
I 'мы также пытались передать указатель на функцию:
public: edit_queue(void (*f1)(T*), T* input);
c::edit_queue(...){queue.f1(input);};
и
private: std::deque<T*>* queue;
...
, но получили тот же результат.
Кроме того, возможно ли не иметьуказать входы f1, а?Например, (1) и (2) будут работать так же, как:
edit_queue(pop_back);