我有一个复杂的双精度数组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中的?

最佳答案

没有gcc 7.3,我不能在没有using namespace std的情况下重现它,但是通常C头中的所有函数都驻留在全局名称空间中。因此,您应该能够通过在前面加上前缀clog来解决歧义:

for (int i = 0; i < n; ++i)
{
    qq[i] = ::clog(eigenvalues[i]);
}

关于c++ - 使用Clog计算具有复数的自然对数时,如何解决出现的歧义?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54972981/

10-11 18:35