Являются __properties в C ++ Builder прошел по ссылке или же по значению? …например
class TMyClass
{
private:
int FMyFoo1;
int GetMyFoo2();
void SetMyFoo2(int AMyFoo2);
public:
__property int MyFoo1 = {read=FMyFoo1, write=FMyFoo1};
__property int MyFoo2 = {read=GetMyFoo2, write=SetMyFoo2};
};
Также вы можете добавить & оператор для __properties, лайк
__property int &MyFoo = {read=FMyFoo};
но только с компиляторами на основе Clang. Что за этим стоит?
Реми Лебо ответил на мой вопрос в комментарии:
Объявление свойства как
__property DataType PropName = {read=FMember, write=FMember};
предлагает прямой доступ к FMember даже если Тип данных не объявлен в качестве ссылки. Итак, если у вас есть функция, которая принимает Тип данных& ссылка в качестве ввода и передачи Имя_свойства к функции, компилятор все еще может оптимизировать и передать FMember со ссылкой на функцию.
Других решений пока нет …