Сообщение Re[3]: Приведение базового класса в конструкторе потомка от 03.09.2019 5:17
Изменено 03.09.2019 5:25 rg45
ЕМ>Чтобы оптимизатор делал передачу структур до 64 разрядов через регистры. Впрочем, для не-POD этого, похоже, не добиться — он всегда генерит временную переменную, даже если по факту никаких вызовов конструкторов/деструкторов там нет (все вычисляется во время компиляции).
Я думаю, тебе полезно освежить в памяти рекоммендации из этой чудной книженции будет:
C++ Coding Standards101 Rules, Guidelines, and Best Practices
Правило №8. Не оптимизируйте преждевременно
Правило №9. Не пессимизируйте преждевременно
Избежание преждевременной оптимизации не влечет за собой снижения эффективности. Под преждевременной пессимизацией мы подразумеваем написание таких неоправданных потенциально неэффективных вещей, как перечисленные ниже.
- Передача параметров по значению там, где применима передача параметров по ссылке (рекомендация 25).
Правило №15. Активно используйте const
Пример. Избегайте const в объявлениях функций, принимающих параметры по значению. Два следующих объявления абсолютно эквивалентны:
void Fun( int x ); void Fun( const int x ); // Объявление той же самой функции: // const здесь игнорируется
Во втором объявлении модификатор const избыточен. Мы рекомендуем объявлять функции без таких высокоуровневых модификаторов const, чтобы тот, кто читает ваши заголовочные файлы, не был дезориентирован...
ЕМ>Чтобы оптимизатор делал передачу структур до 64 разрядов через регистры. Впрочем, для не-POD этого, похоже, не добиться — он всегда генерит временную переменную, даже если по факту никаких вызовов конструкторов/деструкторов там нет (все вычисляется во время компиляции).
Я думаю, тебе полезно будет освежить в памяти рекомендации из этой чудной книженции:
C++ Coding Standards101 Rules, Guidelines, and Best Practices
Правило №8. Не оптимизируйте преждевременно
Правило №9. Не пессимизируйте преждевременно
Избежание преждевременной оптимизации не влечет за собой снижения эффективности. Под преждевременной пессимизацией мы подразумеваем написание таких неоправданных потенциально неэффективных вещей, как перечисленные ниже.
- Передача параметров по значению там, где применима передача параметров по ссылке (рекомендация 25).
Правило №15. Активно используйте const
Пример. Избегайте const в объявлениях функций, принимающих параметры по значению. Два следующих объявления абсолютно эквивалентны:
void Fun( int x ); void Fun( const int x ); // Объявление той же самой функции: // const здесь игнорируется
Во втором объявлении модификатор const избыточен. Мы рекомендуем объявлять функции без таких высокоуровневых модификаторов const, чтобы тот, кто читает ваши заголовочные файлы, не был дезориентирован...