Yeah, sounds a bit interesting, but it feels like a problem that can be easily solved by couple solutions.
First - try to create inner struct enqueue that has all this methods that you need and create a field of this inner class in the structure and just return it as a result for some method named as execute().foo() or execute.bar() and bluh bluh bluh.
Exexute in this context means that you want to execute some actions on your queue and it will helpfull for API readability and usage. In future you would need to only add new methods.
Second - create for each operation custom structure and create a method with similar name execute and just pass as a parameter pointer to the method or whatever you want to apply for your queue in this case.
Surely, you will need to overload operator () for each of this strucutres to make it possible to use as a lambda in your execute interface or you will face with other issues in a future that it will be huge dependency on the stuctured methods.
Also, this might simplified to some macros written template that will generate you a class with already predefined operator() whatever and you can just write the implementation.
This one is a good solution, but on other side - it will require for each usage of execute method to pass exactly what you want to execute.
So, its up to you between this two solutions choose one that fits more in your API design