【发布时间】:2021-06-21 08:12:19
【问题描述】:
我有一个写在头文件中的类,带有函数声明:
文件:Foo.h
class Foo
{
void Update();
}
注意此时没有Foo.cpp文件。
我右键单击Update,然后执行快速操作/重构Create definition of 'Update' in Foo.cpp(如microsoft docs 中所述)。
应该发生的是 Foo.cpp 被创建,#include Foo.h 在第一行,并添加了函数定义。
相反,会创建Foo.cpp,在第一行没有 #include Foo.h,并且不添加了函数定义。此外,我收到一个弹出窗口,提示“无法创建函数‘更新’。函数签名已复制到剪贴板。”
反复尝试创建定义将导致相同的错误弹出窗口重新打开。
如果我手动进入Foo.cpp 并在顶部添加#include Foo.h,则创建定义操作现在将适用于Foo.h。
几个月前我从未遇到过这个问题,可能是由于 vs-2019 的最新更新,但我无法验证这一点。该问题同时影响社区版 16.9.1 和 16.9.2。我已为此向 Microsoft 提交了错误报告。
创建大量文件/函数时这是一个非常乏味的问题,我正在寻找解决方案或解决方法。
编辑
针对cmets,这里是一个额外的测试用例重现错误:
class Foo
{
void Update();
};
【问题讨论】:
-
类定义有语法错误。也许,这是一个原因。
标签: c++ visual-studio visual-c++ visual-studio-2019