The notation is a general one for any type, and the fact you can do it with int means it will work in templates.
template < typename T, typename U >
T makeTFromU( U u )
{
return T( u );
}
Ok, that is a very simple case to show a point, but it works even when T is int and U is a type that can be converted to int.
An example in the standard library would be vector. If you use this constructor it constructs one element from the parameter and the others by copy-constructor from the first.
std::vector< int > v( 20, x );
thus it will probably internally call int(x) to create the first one to then copy into the 20 elements.