property в gcc?
От: x-code  
Дата: 09.09.19 20:49
Оценка:
GCC славится огромным количеством языковых расширений, но вот аналога майкрософтовских свойств
https://docs.microsoft.com/en-us/cpp/cpp/property-cpp?view=vs-2019
что-то сходу не нагуглилось.
Неужели нет?
Re: property в gcc?
От: Vamp Россия  
Дата: 09.09.19 21:14
Оценка:
Здравствуйте, x-code, Вы писали:

XC>GCC славится огромным количеством языковых расширений, но вот аналога майкрософтовских свойств

XC>https://docs.microsoft.com/en-us/cpp/cpp/property-cpp?view=vs-2019
XC>что-то сходу не нагуглилось.
XC>Неужели нет?
Оно не надо.
Да здравствует мыло душистое и веревка пушистая.
Re: property в gcc?
От: niXman Ниоткуда https://github.com/niXman
Дата: 09.09.19 23:56
Оценка:
о ччем речь?
Слово "совпадение" появилось после падения сов.
Re: property в gcc?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 10.09.19 06:14
Оценка:
Здравствуйте, x-code, Вы писали:

XC>GCC славится огромным количеством языковых расширений, но вот аналога майкрософтовских свойств

XC>https://docs.microsoft.com/en-us/cpp/cpp/property-cpp?view=vs-2019
XC>что-то сходу не нагуглилось.
XC>Неужели нет?

Штука теоретически вкусная и даже предлагалась в основной C++, но проблема в том, что она в таком виде слишком ограничена.
Например, как сделать в property оператор типа += так, чтобы это было экономнее последовательности get — add — put? Если не давать, то это неэффективно. В C# могли себе позволить такую потерю эффективности, в C++ — нет.
Значит, надо делать такое для всех операторов.

А тогда с некоторого момента оказывается, что property это такой объект, который ещё и имеет доступ к объемлющему классу. Тогда почему бы это не выразить напрямую?

Я не являюсь на 100% согласным с этими рассуждениями, но у меня нет опыта собственно реализации в компиляторе, и тут вынужден полагаться на чужие выводы.

Зачем это MS, я откровенно не знаю. Может, для переноса кода между C++ — C++/CLI — C#.
Re[2]: property в gcc?
От: Chorkov Россия  
Дата: 10.09.19 08:18
Оценка:
Здравствуйте, netch80, Вы писали:

N>Зачем это MS, я откровенно не знаю. Может, для переноса кода между C++ — C++/CLI — C#.


Это было сделано для COM (в те времена .Net еще небыло).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.