如果函数不合格,则不会考虑函数调用的静态声明

Wal*_*sen 5 c++ xlc

"painting/qpathclipper.cpp",第1643.30行:1540-0274(S)"fuzzyCompare"的名称查找未找到声明.

"painting/qpathclipper.cpp",第1643.30行:1540-1292(I)如果函数不合格,则不考虑函数调用的静态声明.

我正在尝试在xlC 9.0.0.4a上编译Qt 4.5.0,并获得以下代码的上述编译器消息:

static bool fuzzyCompare(qreal a, qreal b)
{
    return qFuzzyCompare(a, b);
}

template <typename InputIterator>
InputIterator qFuzzyFind(InputIterator first, InputIterator last, qreal val)
{
    while (first != last && !fuzzyCompare(qreal(*first), qreal(val))) //line 1643
        ++first;
    return first;
}
Run Code Online (Sandbox Code Playgroud)

Wal*_*sen 6

这里的"static"关键字出错了,应该声明fuzzyCompare

bool fuzzyCompare(qreal a, qreal b)
Run Code Online (Sandbox Code Playgroud)

  • 对于记录,情况并非如此:编译单元*内部的函数应该是静态的,否则将导出符号.相反,xlC错误应该通过在使用点限定使用带有全名(包括命名空间)的`fuzzyCompare`来修复. (2认同)