This is rather a quick question.

I have a function:

```
template<class T> T& read(T& value)
{
    // Read an value of type T and assign it to variable "value"
    return value;
}

```

Now I can use the function as:

```
char c;
read(c);

```

But I want to use this function as:

```
char c = read(char());

```

Is that possible, or do I have to use it as:

```
char c = read<char>();

```

? 
(I know in the latter I have to adjust the function a bit)