Как я могу устранить возникающую неоднозначность при использовании засорения для вычисления натурального логарифма с комплексными числами? - PullRequest
0 голосов
/ 03 марта 2019

У меня есть сложный двойной массив 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 Ответ

0 голосов
/ 03 марта 2019

Я не смог воспроизвести это с помощью gcc 7.3 без using namespace std, но в целом все функции из заголовков C находятся в глобальном пространстве имен.Следовательно, вы должны быть в состоянии разрешить эту неоднозначность, поставив префикс clog с :::

for (int i = 0; i < n; ++i)
{
    qq[i] = ::clog(eigenvalues[i]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...