0

我有以下方法,使用“经典”bcc32 编译器编译良好,但使用 Rad Studio 10 Clang 编译器编译失败。

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

编译器产生以下错误:

[CLANG 错误] Service_REST_Server_OlU.cpp(37):对类型“TPersistentClass”(又名“System::TMetaClass *”)的引用绑定到类型“const TClass”(又名“System::TMetaClass *const”)的值下降限定词

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

4

1 回答 1

2

如果要返回 const 引用,则必须声明它。

const TPersistentClass & __fastcall TService_REST_Server_Ol::OnServerMethods()
{
    return __classid(TServerMethods_RSO);
}
于 2015-09-03T19:03:26.680 回答