问题描述
文件: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 提交了错误报告。
创建大量文件/函数时这是一个非常乏味的问题,我正在寻找解决方案或解决方法来解决这个问题。
编辑
class Foo
{
void Update();
};
解决方法
实际上,Create definition of'Update' in Foo.cpp
无法创建 Update
函数和 Foo.cpp
。因此,您可以将此问题提交给Microsoft DC。
但是,在 Foo.cpp 文件已经创建的情况下,Create definition of'Update' in Foo.cpp
可以创建 Update
函数。另外,我建议您可以使用 Create Declaration/Definition
。它可以在没有 cpp 文件的情况下创建 Foo.cpp
和 Update
函数。