Eclipse显示出错误,但GCC编译了罚款



我有这个mcve:

#include <stdio.h>
#include <string>
#include <vector>
auto wrapperMain( const std::vector<std::string> & commandLineArguments ) -> void
{
    printf( "argc=%dn", commandLineArguments.size() );
}
int main( int argc, char * argv [] )
{
    wrapperMain( { argv, argv + argc } );
//  ^^^^^^^^^^^^ <- Eclipse does not like this
}

它使用C 17的最高警告和pedtican选项(即使不是C 17功能(。

日食强调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中的一个错误。我提交了错误531322跟踪。

update :该错误现已修复。

最新更新