gpt4 book ai didi

c++ - Clang:将引用绑定(bind)到类型为 'const TClass' 的值会删除限定符

转载 作者:行者123 更新时间:2023-11-28 02:21:16 25 4
gpt4 key购买 nike

我有以下方法,使用“经典”bcc32 编译器可以很好地编译,但无法使用 Rad Studio 10 Clang 编译器进行编译。

TPersistentClass & __fastcall TService_REST_Server_Ol::OnServerMethods()
{
return __classid(TServerMethods_RSO);
}

编译器产生以下错误:

[CLANG Error] Service_REST_Server_OlU.cpp(37): binding of reference to type 'TPersistentClass' (aka 'System::TMetaClass *') to a value of type 'const TClass' (aka 'System::TMetaClass *const') drops qualifiers

如果我理解正确,基于this question ,这不起作用的原因是因为代码试图返回对 const 对象的非 const 引用。但是,我在语法上不确定如何解决这个问题。有没有办法在方法定义中指明我想返回一个 const

最佳答案

如果你想返回一个 const 引用,你必须声明它。

const TPersistentClass & __fastcall TService_REST_Server_Ol::OnServerMethods()
{
return __classid(TServerMethods_RSO);
}

关于c++ - Clang:将引用绑定(bind)到类型为 'const TClass' 的值会删除限定符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32383411/

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