我有以下使用“经典”bcc32编译器编译的方法,但无法使用Rad Studio 10 Clang编译器进行编译。
TPersistentClass & __fastcall TService_REST_Server_Ol::OnServerMethods()
{
return __classid(TServerMethods_RSO);
}
编译器产生以下错误:
[CLANG Error] Service_REST_Server_OlU.cpp(37):将类型'TPersistentClass'(又名'System :: TMetaClass *')的引用绑定到类型'const TClass'(又名'System :: TMetaClass * const'的值')删除限定符
如果我理解正确,基于this question,这不起作用的原因是因为代码试图返回对const对象的非const引用。但是,我在语法上不确定如何解决这个问题。有没有办法在方法定义中指出我想要返回const
?
答案 0 :(得分:2)
如果要返回const引用,则必须声明它。
const TPersistentClass & __fastcall TService_REST_Server_Ol::OnServerMethods()
{
return __classid(TServerMethods_RSO);
}