I'm trying to pass a function (f1) through another function (f2), while not having to specify f1.
Example Code
Class C {
private: std::deque<T*> queue;
public: edit_queue(std::function<void(T*)> f1, void* input);
};
C::edit_queue(...){
queue.f1(input);
}
However this doesn't compile with error:
no member named 'f1' in 'std::__1::deque<T *, std::__1::allocator<T *> >
I would like to be able to do both:
edit_queue(push_back, T* input); (1)
and
edit_queue(push_front, T* input); (2)
I've tried passing a function pointer as well:
public: edit_queue(void (*f1)(T*), T* input);
c::edit_queue(...){queue.f1(input);};
and
private: std::deque<T*>* queue;
...
but got the same result.
In addition, is it also possible to not have to specify the inputs of f1 as well? For instance, (1) and (2) would work as well as:
edit_queue(pop_back);