According to the C++ ISO spec, §26.2/2:
The effect of instantiating the template complex for any type other than float,
complex
float
Probably for compatibility with the helper functions. For example:
template T abs (const complex& x);
If T == int, abs would return int, which would mean a massive loss in precision.
T == int
abs
int