I want to pass tuple as a function argument. Do I have to specify the exact contents of tuple which I will be passing or is there any other better way of doing it?
I believe that it could deduce the template arguments from the function call. This would, of course, limit the function to taking a tuple of four types (and any other requirements set in the body of the function). This doesn't seem to buy you much, though--I'd stick with typedefs.