170 похожих чатов

А что делать с исходным unique_ptr, откуда мы переместили владение,

если даункаст не прошёл?

14 ответов

39 просмотров

не перемещать владение, если даункаст не прошёл, очевидно

Alexey Petrunyaka
не перемещать владение, если даункаст не прошёл, о...

Вообще передавать владения лучше через мув а мув с разными типами указателей не пройдёт

Ilya Zviagin
Вообще передавать владения лучше через мув а мув с...

Такой мув с даункастом просто самому писать надо.

Alexey Petrunyaka
Такой мув с даункастом просто самому писать надо.

Вообще откуда идея одновременно и мувать и даункастить?

Ilya Zviagin
Вообще откуда идея одновременно и мувать и даункас...

Ну а как иначе передать владение на унаследованный класс, а не на базовый?

Alexey Petrunyaka
Ну а как иначе передать владение на унаследованный...

А зачем вот вопрос владение оно не зависит от того на какой тип указатель указывает

Ilya Zviagin
А зачем вот вопрос владение оно не зависит от того...

Например, чтобы все вызовы у нового владельца перестали быть виртуальными.

А зачем?

Ilya Zviagin
А зачем?

Для более быстрой работы, очевидно же. Нет косвенных вызовов через VMT, компилятор может их вообще заинлайнить и/или дополнительно оптимизировать.

Alexey Petrunyaka
Для более быстрой работы, очевидно же. Нет косвенн...

Да это сказки что виртуальная функция называется быстрее чем не виртуальная

Alexey Petrunyaka
Для более быстрой работы, очевидно же. Нет косвенн...

А ты городишь чушь на ходу придумывая всякую хрень это не нужно вообще было изначально никому А ты придумал ответ на вопрос и пытаешься подогнать к этому какие-то требования

Ilya Zviagin
А ты городишь чушь на ходу придумывая всякую хрень...

Если человек захотел зачем-то сделать dynamic_cast, а не просто звать виртуальные функции, значит ему это зачем-то было нужно? Мое предположение вполне логично: зная о конкретном наследнике, с ним можно работать 1) быстрее 2) пользоваться функциями, которых нет у предка.

Alexey Petrunyaka
Если человек захотел зачем-то сделать dynamic_cast...

1) быстрее?) бенчи делали? Смотрели насколько быстрее? 2) пользоваться функциями, которых нет у предков - очень странно, тогда надо сразу работать с данным типом, а не хранить указатель на предка))

Till Schneider
1) быстрее?) бенчи делали? Смотрели насколько быст...

1) я знаю, что разница невелика, но она есть, и на больших количествах обрабатываемых объектов с короткими виртуальными функциями становится ощутимой. 2) с этим я польностью согласен.

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
5
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
1
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Карта сайта