gpt4 book ai didi

c++11 - 基于范围的 for 循环中的 Visual Studio Intellisense 错误

转载 作者:行者123 更新时间:2023-12-02 22:44:45 25 4
gpt4 key购买 nike

我的 Visual Studio 2015 IDE(社区版)不断提示以下代码

struct item
{
int data;
std::vector<item*> linkedItems;
};

void traverseLinkedItems(item* p_item)
{
for (item* i : p_item->linkedItems) // Intellisense Error: A value of type "item*" cannot be used to initialize an entity of type "item*"
{
std::cout << i->data;
}
}

它编译得很好。所以我不确定这是否是VS中的一个错误,或者我错过了什么?当我使用 auto 而不是显式指定 i 的类型时,一切正常。

谢谢!

最佳答案

智能感知并不总是正确的。为了了解有关代码的所有信息,它必须完全编译它,但这会太慢而无法(方便地)使用。相反,它以更快但不太完整的方式解析您的代码,以获取自动完成信息并发现明显的错误。然而,有时它会被某些东西绊倒,要么是由于错误,要么是因为它无法获取所需的所有信息。当这种情况发生时,它的输出就不那么(智能)明智了。

我会简单地忽略 IntelliSense 错误,或者,就像您所说的,如果您想消除错误,请使用 auto 而不是 item* 。也许在以后的更新中,或者在更改代码后,错误会神奇地消失。

关于c++11 - 基于范围的 for 循环中的 Visual Studio Intellisense 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38952200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com