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