Il seguente codice con VS2010 stampa 0
, contrariamente alle mie aspettative:Perché abs (complesso <int>) restituisce sempre zero?
#include <complex>
#include <iostream>
using namespace std;
int main(void)
{
complex<int> z(20, 200);
cout << abs<int>(z) << endl;
return 0;
}
Funziona benissimo quando il tipo è double
.
Huh, non mi è nemmeno permesso usare il mio tipo di numero reale? Questo è deludente. –
@ PaulManta- Sì, immagino di no. Non ho idea del perché questo sia. – templatetypedef
Grazie per la risposta. Restituire 0, 200 o 42 quando il comportamento non è specificato potrebbe essere effettivamente secondo uno standard, ma sicuramente è piuttosto una trappola per il programmatore casuale come me. – Artium