Eclipse 显示错误,但 gcc 编译正常

Eclipse shows an error but gcc compiles fine

我有这个 MCVE:

#include <stdio.h>
#include <string>
#include <vector>

auto wrapperMain( const std::vector<std::string> & commandLineArguments ) -> void
{
    printf( "argc=%d\n", commandLineArguments.size() );
}

int main( int argc, char * argv [] )
{
    wrapperMain( { argv, argv + argc } );
//  ^^^^^^^^^^^^ <- Eclipse does not like this
}

它使用 C++17 的最高警告和迂腐选项在 gcc 7.3 上编译得很好 [即使它不是 C++17 的特性]。

Eclipse 下划线 wrapperMain 并显示此错误消息:

Invalid arguments '
Candidates are:
void wrapperMain(const std::vector<std::__cxx11::basic_string
   <char,std::char_traits<char>,
   std::allocator<char>>,std::allocator<std::__cxx11::basic_string
   <char,std::char_traits<char>,
   std::allocator<char>>>> &)
'

我知道我可以使用 Eclipse @suppress 指令禁用这个带下划线的错误:

wrapperMain( { argv, argv + argc } ); // @suppress("Invalid arguments")

但我想总体上修复它。

我的问题:是 Eclipse 错误还是缺少设置?

这几乎可以肯定是 Eclipse CDT 中的错误。我提交了 bug 531322 来跟踪。

更新:错误现已修复。