Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Optional references

Boost , Boost.Optional , Tutorial

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Эта библиотека позволяет параметру шаблона<T>быть эталонного типа:<T&>и в некоторой степени<Tconst&>.

Однако, поскольку ссылки не являются реальными объектами, применяются некоторые ограничения, и некоторые операции в этом случае недоступны:

  • Преобразование конструкторов
  • Преобразование задания
  • Строительство на месте
  • Задание места
  • Доступ к стоимости через указатель

Кроме того, несмотря на то, что<optional<T&>>рассматривает псевдообъект как реальную ценность, сохраняется реальная ссылка, поэтому псевдообъект будет иметь следующее значение:

  • Копии<optional<T&>>будут копировать ссылки, но все эти ссылки будут ссылаться на один и тот же объект.
  • Доступ к ценности фактически обеспечит доступ к объекту, на который делается ссылка, а не к самой ссылке.
[Caution] Caution

На компиляторах, которые не соответствуют стандартным C++ правилам связывания ссылок, некоторые операции с дополнительными ссылками отключены для предотвращения тонких ошибок. Подробнее см.Зависимость и переносимость.

Rvalue references

Rvalue-ссылки и lvalue-ссылки на const имеют возможность в C++ продлить срок службы временного элемента, к которому они привязаны. Необязательные ссылки не обладают такой способностью, поэтому во избежание неожиданных эффектов невозможно инициализировать необязательные ссылки из временных. Опциональные ссылки на rvalue полностью отключены. Кроме того, инициализация и назначение необязательной ссылки на const из ссылки rvalue отключены.

const int& i = 1;            // legal
optional<const int&> oi = 1; // illegal

PrevUpHomeNext

Статья Optional references раздела Boost.Optional Tutorial может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Tutorial ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 08:58:15/0.0075690746307373/1