Comments 10
Таким образом, сигнатура метода нарушается и все известные мне типизированные языки (в том числе и haxe) пресекут попытку переопределить метод с другим возвращаемым типом.
C++ не пресечёт. Виртуальная функция в наследуемом классе может возвращать указатель не на тот же тип, что возвращается в базовом, а на наследника возвращаемого типа (не обязательно того же типа, что и сам класс и его наследник).
+2
может возвращать указательДля полноты: либо ссылку.
Java, кстати, тоже поддерживает ковариантность типов возвращаемых значений. И C#, скорее всего, аналогично.
+3
Такая подойдет? www.lwithers.me.uk/articles/covariant.html
0
C# так не может — но у него есть расширения, которыми так же можно решить эту задачу.
+2
По ссылке lib.haxe.org/t/macro, к сожалению, нету ссылок на проекты Димы Гранецкого — github.com/profelis/bindx2, github.com/profelis/halk, github.com/profelis/overload-operator.
Также стоит отметить что он написал серию обучающих статей о макросах в Haxe: haxe.ru/taxonomy/term/455
Также стоит отметить что он написал серию обучающих статей о макросах в Haxe: haxe.ru/taxonomy/term/455
+1
Очень приятно видеть язык с приличными (а не урезанными) макросами, но очень удивляет пассаж «мне не доводилось видеть такого в других языках», потому что если судить по описанию, то это немного ухудшенная версия хорошо известной «молодой» технологии (ей всего-то полвека, LOL). Или я чего-то не понимаю?
+1
Sign up to leave a comment.
Макросы в haxe: выполняем код прямо во время компиляции (и это нормально)