«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему привязка константной ссылки к временному объекту продлевает срок его жизни?

Почему привязка константной ссылки к временному объекту продлевает срок его жизни?

Опубликовано 17 ноября 2024 г.
Просматривать:696

Why Does Binding a Const Reference to a Temporary Object Extend Its Lifetime?

Почему привязка константной ссылки к временному объекту продлевает срок его жизни?

Язык программирования C позволяет константным ссылкам продлевать срок службы временных объектов. Такое поведение было предметом многочисленных споров, причем некоторые утверждали, что оно позволяет повысить производительность и гибкость при проектировании кода.

Происхождение этой функции языка восходит к 1993 году, когда она была предложена в качестве решения для несогласованность в обработке временных объектов при привязке к ссылкам. В отсутствие оптимизации возвращаемого значения (RVO) запрет привязки временного объекта к ссылке привел бы к снижению производительности.

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

Например, рассмотрим матричный класс, который может возвращать векторы-строки или столбцы. векторы. Чтобы оптимизировать производительность, тот или иной тип вектора может быть возвращен в качестве ссылки, в зависимости от внутренней организации реализации (хранилище со строками или столбцами). Такая гибкость позволяет разработчику библиотеки изменять реализацию в будущем, не затрагивая клиентский код, который в противном случае потребовал бы явной обработки типа возвращаемого значения.

В результате решение комитета продлить срок службы временных объектов, когда привязка к константным ссылкам служит двойной цели: она обеспечивает согласованность поведения привязки ссылок и позволяет реализовать оптимизированный и адаптируемый дизайн кода.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3