Having the function definition:

```
void f(int) { }

```

I want to define:

```
int a;

```

but if the function definition changes to:

```
void f(double) { }

```

the variable definition must become:

```
double a;

```

that is, the type of "a" must be the same of the first argument of the "f" function.
I need something like the following:

```
decltype_of_argument<f, 0> a;

```

Is it possible in C++?