C++ Clang:对类型为'的值的引用绑定;常数TClass';drops限定符

C++ Clang:对类型为'的值的引用绑定;常数TClass';drops限定符,c++,c++11,clang,c++builder,c++builder-10-seattle,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):将对类型“TPers

我有下面的方法,使用“经典”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”)的值会丢弃限定符


如果我理解正确的话,基于,这不起作用的原因是代码试图返回对常量对象的非常量引用。然而,我在语法上不确定如何解决这个问题。有没有一种方法可以在方法定义中指出我想要返回一个常量?

如果你想要返回一个常量引用,你必须声明它

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