Как я могу устранить возникающую неоднозначность при использовании засорения для вычисления натурального логарифма с комплексными числами?
У меня сложный двойной массив eigenvalues
из которых я хочу получить натуральный логарифм каждой записи с помощью clog
,
for (int i = 0; i < n; ++i)
{
qq[i] = clog(eigenvalues[i]);
}
Я уже уронила using namespace std;
но я все еще получаю error: reference to 'clog' is ambiguous
,
Как я могу дать понять, что я хочу использовать clog
от complex.h
а не из iostream
?
1 ответ
Решение
Я не смог воспроизвести это с GCC 7.3 без using namespace std
но в целом все функции из заголовков C находятся в глобальном пространстве имен. Следовательно, вы должны быть в состоянии разрешить неоднозначность, поставив префикс clog с ::
:
for (int i = 0; i < n; ++i)
{
qq[i] = ::clog(eigenvalues[i]);
}