LINUX.ORG.RU

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

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

Рассовывать структуры по регистрам положено по Linux ABI, так и С делает. Но это применяется когда принимающая функция знает размер структуры, и он меньше определенного. Но в случае с виртуальным объектом функция никогда не знает что ей прилетит, какого размера объект, вот и передается вместо этого указатель.

В Rust принимающая функция всегда знает что ей передается пара.

Но это получается что у Rust нету dynamic_cast, RTTI. Можно сказать что C++ более рантаймовый язычек (конкретно в этом плане), и виртуальные вызовы немного эффективнее в Rust не нужно еще лишнее поле в классах, RTTI все равно все отключают, царь если что опровергнет.

Исправление MOPKOBKA, :

Рассовывать структуры по регистрам положено по Linux ABI, так и С делает. Но это применяется когда принимающая функция знает размер структуры, и он меньше определенного. Но в случае с виртуальным объектом функция никогда не знает что ей прилетит, какого размера объект, вот и передается вместо этого указатель.

В Rust принимающая функция всегда знает что ей передается пара.

Но это получается что у Rust нету dynamic_cast, RTTI. Можно сказать что C++ более рантаймовый язычек (конкретно в этом плане), и виртуальные вызовы немного эффективнее в Rust, RTTI все равно все отключают, царь если что опровергнет.

Исправление MOPKOBKA, :

Рассовывать структуры по регистрам положено по Linux ABI, так и С делает. Но это применяется когда принимающая функция знает размер структуры, и он меньше определенного. Но в случае с виртуальным объектом функция никогда не знает что ей прилетит, какого размера объект, вот и передается вместо этого указатель.

В Rust принимающая функция всегда знает что ей передается пара.

Но это получается что у Rust нету dynamic_cast, RTTI. Можно сказать что C++ более рантаймовый язычек (конкретно в этом плане), царь если что опровергнет.

Исправление MOPKOBKA, :

Рассовывать структуры по регистрам положено по Linux ABI, так и С делает. Но это применяется когда принимающая функция знает размер структуры, и он меньше определенного. Но в случае с виртуальным объектом функция никогда не знает что ей прилетит, какого размера объект, вот и передается вместо этого указатель.

В Rust принимающая функция всегда знает что ей передается пара.

Но это получается что у Rust нету dynamic_cast, RTTI. Можно сказать что C++ более рантаймовый язычек, царь если что опровергнет.

Исправление MOPKOBKA, :

Рассовывать структуры по регистрам положено по Linux ABI, так и С делает. Но это применяется когда принимающая функция знает размер структуры, и он меньше определенного. Но в случае с виртуальным объектом функция никогда не знает что ей прилетит, какого размера объект, вот и передается вместо этого указатель.

В Rust принимающая функция всегда знает что ей передается пара.

Но это получается что у Rust нету dynamic_cast, RTTI.

Исправление MOPKOBKA, :

Рассовывать структуры по регистрам положено по Linux ABI, так и С делает. Но это применяется когда принимающая функция знает размер структуры, и он меньше определенного. Но в случае с виртуальным объектом функция никогда не знает что ей прилетит, какого размера объект, вот и передается вместо этого указатель.

В Rust принимающая функция всегда знает что ей передается пара.

Но это получается что у Rust нету dynamic_cast.

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

Рассовывать структуры по регистрам положено по Linux ABI, так и С делает. Но это применяется когда принимающая функция знает размер структуры, и он меньше определенного. Но в случае с виртуальным объектом функция никогда не знает что ей прилетит, какого размера объект, вот и передается вместо этого указатель.

В Rust принимающая функция всегда знает что ей передается пара.