Eclipse CDT - "Invalid arguments" 使用模板默认值时

Eclipse CDT - "Invalid arguments" when using template defaults

我收到以下代码的奇怪错误:

template<class T, size_t Size = sizeof(T)>
class foobar {
};

template<class T>
void foo(foobar<T> param1) {
    // Do something
}

void bar() {
    foobar<int> obj;

    foo(obj);
}

错误发生在行 foo(obj); 并且是:

Invalid arguments '
Candidates are:
void foo(foobar<#0,unsigned int16 0 #0>)
'

但是代码本身编译得很好。我不知道如何解决它。

Eclipse giving me Invalid arguments ' Candidates are: void * memset(void *, int, ?) ' though I know the args are good 没有解决,所以这个问题不是重复的。

这是 CDT 中的错误。修复它的 bug report has been filed to track it, and a patch 已发布。

更新:错误现在已经 fixed。修复将出现在 Eclipse Oxygen 中。