Здравствуйте, FR, Вы писали:
CS>>Наткнулся вот на Heron Programming Language FR>Есть вопрос ты за ним следишь? FR>Интересный язык, но мне показалось, или так и есть, что он скорее мертв чем жив?
Вот о таком полиморфизме я мечтаю для С++. Но только чтобы статический и динамический полиморфизм использовали один и тот же синтаксис( по крайней мере где возможно). А уж компилятор сам будет разбираться где он знает тип на этапеи компиляции а где необходим косвенный вызов.
Здравствуйте, AndrewVK, Вы писали:
AVK>Ну а когда на этапе приведения при работе JIT заранее о результате неизвестно, там будет единственное обращение к interface map по константному смещению (любой интерфейс в imap всех классов всегда расположен по одному и тому же смещению).
А что происходит, когда кол-во интерфейсов в загруженных типах идёт на десятки тысяч?
CS>>это фактически образование (compile time) таблицы method references — (this,funcptr) CS>>Соответсвенно вызов такого "виртуального" метода — это вызов обычной невиртуальной функции.
AVK>Т.е. в случае полиморфного кода это не работает? Тогда полезность этой фичи вобще непонятна.
Наверно, в случае полиморфного метода будет сгенерирован косвенный вызов?
Здравствуйте, vdimas, Вы писали:
V>А что происходит, когда кол-во интерфейсов в загруженных типах идёт на десятки тысяч?
Ничего страшного.
AVK>>Т.е. в случае полиморфного кода это не работает? Тогда полезность этой фичи вобще непонятна.
V>Наверно, в случае полиморфного метода будет сгенерирован косвенный вызов?