Por que o abs (complexo <int>) sempre retorna zero?

O seguinte código com impressões VS20100, ao contrário das minhas expectativas:

#include <complex>
#include <iostream>

using namespace std;

int main(void)
{
    complex<int> z(20, 200);
    cout << abs<int>(z) << endl;
    return 0;
}

Ele funciona bem quando o tipo édouble.

questionAnswers(2)

yourAnswerToTheQuestion