Информация об изменениях

Сообщение Методы-расширения и UFCS от 08.02.2021 8:16

Изменено 08.02.2021 8:18 x-code

Методы-расширения и UFCS
Что вы об этом думаете?
Есть подход в C#, когда в функции (обычно статический метод другого класса) явно добавляют к параметру модификатор this, и после этого эту функцию можно вызывать как метод того объекта, для которого добавили this.
Есть предложение C++ n4474, в котором Саттер и Старуструп объединили свои размышления и пришли к выводу, что хорошо бы разрешать вызывать x.f(y) вместо f(x,y) и наоборот безо всяких модификаторов this. В документе рассмотрены преимущества такого подхода (шаблоны, концепты, интеллисенс).
Вроде бы нечто подобное сделано в D.
А вот если проектировать язык программирования с нуля, то какой подход предпочтительнее?
Какие преимущества и недостатки у явно определенных методов-расширений и унифицированного синтаксиса вызова функций вы видите?
Методы-расширения и UFCS
Что вы об этом думаете?
Есть подход в C#, когда в функции (обычно статический метод другого класса) явно добавляют к параметру модификатор this, и после этого эту функцию можно вызывать как метод того объекта, для которого добавили this.
Есть предложение C++ n4474, в котором Саттер и Страуструп объединили свои размышления и пришли к выводу, что хорошо бы разрешать вызывать x.f(y) вместо f(x,y) и наоборот безо всяких модификаторов this. В документе рассмотрены преимущества такого подхода (шаблоны, концепты, интеллисенс).
Вроде бы нечто подобное сделано в D.
А вот если проектировать язык программирования с нуля, то какой подход предпочтительнее?
Какие преимущества и недостатки у явно определенных методов-расширений и унифицированного синтаксиса вызова функций вы видите?