微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

创建“xxx”的定义:无法创建函数“xxx”函数签名已复制到剪贴板

如何解决创建“xxx”的定义:无法创建函数“xxx”函数签名已复制到剪贴板

我在头文件中编写了一个类,并带有函数声明:

文件: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.cppUpdate 函数。 enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。