Supposedly, I have a variadic macro (e.g., MY_MACRO(...)) and I call it the following way:
MY_MACRO(std::pair<int, int> const &p)
Now, __VA_ARGS__ in my macro's body would be std::pair<int, int> const &p. 
Is there a way to figure out the type of __VA_ARGS__? 
Presumably, I would be grateful if something like decltype(std::pair<int, int> const &p) worked and yield std::pair<int, int> const&, so in my variadic macro's body decltype(__VA_ARGS__) would yield std::pair<int, int> const& as well. Unfortunately this doesn't work.
 
     
    