Clang:引用绑定到'const TClass'类型的值会导致限定符

时间:2015-09-03 18:56:29

标签: c++ c++11 clang c++builder c++builder-10-seattle

我有以下使用“经典”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

1 个答案:

答案 0 :(得分:2)

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

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