Variadic template arguments and argument hints

The question is easier to understand by example, so consider the following code:

struct S { S(int, float, char) {}; };
vector<S> v;
v.emplace_back( <-...

The IDE (Visual Studio 2015 in this case) understands, that the arguments, which emplace_back expects, are int, float, char, although the emplace_back function uses (at first sight) standard variadic template arguments.

How is this achieved? Is it possible to do something similar for this code:

void f(int, float, char) {}

template<typename ...Args>
void call(void(int, float, char), Args&&... args)
{
    f(args...);
}

so when you start typing call(f, <-... to see int, float, char (instead of just Args...)?

I guess the IDE just treats the standard library in a special way, but I decided to ask, just in case there's something tricky I can do to achieve the same behavior.