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 来跟踪。
更新:错误现已修复。
我有这个 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 来跟踪。
更新:错误现已修复。