У меня есть 207 в реальном мире примеры operator &()
: Поиск кода 1 , Поиск кода 2 .
Включая SafeInt<>
(чтобы получить базовое голое целое число), boost :: gil (по-видимому, также для получения необработанных данных), Mozilla (которые говорят «это рискованно» чтобы определить оператор &, но, эй, мы знаем, что делаем. "), wxWidgets, Armagetron и многое другое.
Кажется, некоторые используют итератор идиома &*it
, чтобы получить необработанную ссылку или указатель назад, и пишут *&it
, чтобы получить необработанную ссылку, и &it
, чтобы получить необработанный указатель.
Обратите внимание, что как только ваш тип перегружает operator&
и возвращает что-то отличное от встроенного оператора, ваш тип больше не является CopyConstructible (в C ++ 03 - C ++ 0x, кажется, его поднял), и поэтому не может больше не будет использоваться как тип элемента в стандартном контейнере.