Visual Studio Intellisense 突然显示复制构造函数,而不是参数化构造函数

Visual Studio Intellisense suddenly shows copy constructor and not parametrized constructor

提问人:Ondřej Janča 提问时间:1/4/2023 最后编辑:Ondřej Janča 更新时间:1/12/2023 访问量:100

问:

我不知道发生了什么变化,但我在 C++ 编码期间的 VS IntelliSense 突然开始显示不同顺序的类构造函数。

我希望它会像以前一样首先显示我定义的参数化构造函数,但现在首先有一个复制构造函数,然后是我的构造函数。

一个小障碍,但现在我必须沿着清单找到我每次都需要的东西。

我的 Google-fu 除了定义复制构造函数然后手动将其隐藏在 IntelliSense 中之外,没有给我任何解决方案。

我发现这种行为不是特定于解决方案的。

我做错了什么来实现这种行为,我怎样才能把事情改回一开始显示参数化构造函数?

编辑: 到目前为止我尝试过的(但没有帮助):

  • 重新启动 Visual Studio
  • 删除 .vs 文件夹
C++ Visual-Studio IntelliSense 复制构造函数

评论

1赞 john 1/4/2023
核选项是删除解决方案文件夹中的子文件夹。这迫使 VS 重建其所有内部数据库。无法知道它是否会解决您的问题,但可能值得一试。.vs
0赞 Ondřej Janča 1/4/2023
@john 可悲的是,这无济于事。不过,我发现这种行为不是特定于解决方案的。

答:

1赞 Dou Xu-MSFT 1/12/2023 #1

请检查您是否修改了涉及构造函数的代码。定义的构造函数的顺序将影响 IntelliSense 显示的顺序。下面是首先设置定义的参数化构造函数的解决方法。

更改类文件中定义的构造函数的顺序。首先定义复制构造函数,然后定义参数化构造函数。然后,你将看到 IntelliSense 首先自动显示参数化构造函数。类构造函数和 IntelliSense 显示之间似乎存在倒置的顺序映射。

注意:请在修改代码之前进行备份。

例如:

example

希望对您有所帮助。

评论

0赞 Ondřej Janča 3/6/2023
这解决了我的问题,谢谢:-)这是非常违反直觉的。我没想到 IntelliSense 会以相反的顺序映射构造函数。