C++ 用于C/C+的eclipseide+;发展商:";无效参数";错误显示错误?

C++ 用于C/C+的eclipseide+;发展商:";无效参数";错误显示错误?,c++,eclipse-cdt,C++,Eclipse Cdt,我在EclipseIDEforC/C++开发人员(4.8.0)的map\u-name.insert(make\u-pair(“string\u-name”,int\u-name);上发现一个错误,即EclipseIDE中的参数无效 我正在使用GCC 8.2.0。我正在用STL尝试一些简单的东西 尝试了insert(make_pair())或insert(pair())获取相同的IDE错误(语义错误)。这是为什么 代码: #包括 #包括 使用名称空间std; int main() { 地图时代;

我在EclipseIDEforC/C++开发人员(4.8.0)的
map\u-name.insert(make\u-pair(“string\u-name”,int\u-name);
上发现一个错误,即EclipseIDE中的参数无效

我正在使用GCC 8.2.0。我正在用STL尝试一些简单的东西

尝试了
insert(make_pair())
insert(pair())
获取相同的IDE错误(语义错误)。这是为什么

代码:

#包括
#包括
使用名称空间std;
int main()
{
地图时代;
年龄[“迈克”]=21岁;
年龄[“约翰尼”]=20岁;
年龄[“Vicky”]=30岁;
年龄[“迈克”]=42岁;
//插入(配对(“彼得”,100));
插入(成对(“Peter”,100));
for(map::iterator it=ages.begin();it!=ages.end();it++)
{

coutfirstGCC 8附带的标准库实现使用了一个名为
\uuu的类型特征内在特性,它是可构造的,Eclipse CDT的解析器还不支持该特性

当CDT解析GCC8的标准库代码时,这可能会导致误报错误

如果您使用GCC7或更早版本,则此代码不会出现任何错误


更新:跟踪向CDT的解析器添加对
\uu可构造的
的支持。该问题最近得到了修复,尽管该修复尚未出现在CDT发行版中。

GCC 8附带的标准库实现使用了名为
\uu可构造的内部类型特征,Eclipse CDT的解析器就是这样做的还不支持

当CDT解析GCC8的标准库代码时,这可能会导致误报错误

如果您使用GCC7或更早版本,则此代码不会出现任何错误


更新:跟踪向CDT的解析器添加对
\u可构造的
的支持。它最近已被修复,尽管该修复尚未出现在CDT发行版中。

在OS X命令行上编译并运行良好可能是IDE,知道如何在eclipse中修复它。您能发布完整的错误消息吗?代码编译在GCC 8.2()@HenriqueJung上很好我在原始帖子中添加了一张图片,在插入函数下面有一条弯曲的红线。我认为这只是Eclipse编辑器解析中的一个错误,很可能执行了很多试探法来响应。你试过使用命令行编译它吗?可能只是触发了一个“构建”Eclipse上的按钮将使错误消失。在OS X命令行上编译并运行良好可能是IDE,知道如何在Eclipse中修复它。您能发布完整的错误消息吗?代码在GCC 8.2()上编译良好@HenriqueJung我在原始帖子中添加了一张图片,插入函数下方有一条扭曲的红线。我认为这只是Eclipse编辑器解析中的一个错误,很可能执行了很多启发式操作来响应。您是否尝试过使用命令行编译它?也许只要在Eclipse上触发一个“构建”按钮,错误就会消失。
#include <iostream>
#include <map>
using namespace std;

int main()
{
    map<string, int> ages;

    ages["Mike"] = 21;
    ages["Johnny"] = 20;
    ages["Vicky"] = 30;
    ages["Mike"] = 42;

//  ages.insert(make_pair("Peter", 100));
    ages.insert(pair < string, int > ("Peter", 100));

    for(map<string, int>::iterator it = ages.begin(); it!=ages.end(); it++)
    {
        cout<< it->first<<": "<< it->second<<endl;

    }

     return (0);
}