Clang: привязка ссылки к значению типа ‘const TClass’ отбрасывает квалификаторы

У меня есть следующий метод, который прекрасно компилируется с использованием «классического» компилятора 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?

0

Решение

Если вы хотите вернуть постоянную ссылку, вы должны объявить ее.

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

Другие решения


По вопросам рекламы [email protected]