我有这个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 :该错误现已修复。