C++11 complex

0
 #define _USE_MATH_DEFINES
#include <iostream>
#include <complex>
#include <cmath>

double Spectrum(double a, double b,double f)
{
    double delta_tau = 10 * pow(10, -6);
    double delta_phi = 0.628;
    std::complex<double> Hf = a*(1.0 - std::polar(b, delta_phi)*std::polar(1, 2 * M_PI*f*delta_tau));
    return std::abs(Hf);
}

int main()
{
    std::cout << Spectrum(1.0, 0.99, 900.01) << std::endl;
    system("pause");
    return 0;
}

Dlaczego program mi się nie kompiluje?

Wyrzuca mi błąd:

Error C2440 'return': cannot convert from 'std::complex<std::complex<double>>' to 'std::complex<double>'

Nie wiem o co może chodzić.

1

Mi jako tako to się kompiluje zmieniłem tylko:
std::polar(1, 2 * M_PI*f*delta_tau)
na
... std::polar(1.0, 2.0 * M_PI*f*delta_tau) ...

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0