Re[2]: Приведение базового класса в конструкторе потомка
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 02.09.19 15:19
Оценка:
Здравствуйте, rg45, Вы писали:

R>Про списки инициализации не слыхал?


Блин. Я был так удивлен невозможностью преобразования типа, что совсем забыл о том, что инициализируется, по сути, базовый класс.

R>почему параметр передается по значению


Чтобы оптимизатор делал передачу структур до 64 разрядов через регистры. Впрочем, для не-POD этого, похоже, не добиться — он всегда генерит временную переменную, даже если по факту никаких вызовов конструкторов/деструкторов там нет (все вычисляется во время компиляции).

R>почему конструктор не explicit


Именно, чтобы можно было преобразовывать неявно.

R>и зачем оно вообще нужно.


В реальном коде 32-разрядная структура из битовых полей. Ее и удобнее, и выгоднее держать на регистре.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.