LINUX.ORG.RU

История изменений

Исправление MOPKOBKA, (текущая версия) :

Хотя я сейчас понял что в Rust есть преимущество для вызова dyn Trait, он всегда передает его как структуру с двумя полями, и распаковывает по регистрам, а С++ не подозревает что у нас всего два поля по сути, и создает объект на стеке (так что создавать на стеке придется два поля все же), и уже дает ссылку на стек.

Так что в C++ вызовы Trait не такие эффективные на Linux ABI. Интересно как у Rust дела на MS ABI.

Исходная версия MOPKOBKA, :

Хотя я сейчас понял что в Rust есть преимущество для вызова dyn Trait, он всегда передает его как структуру с двумя полями, и распаковывает по регистрам, а С++ не подозревает что у нас всего два поля по сути, и создает объект на стеке (так что создавать на стеке придется два поля все же), и уже дает ссылку на стек.