Чтобы прояснить возможную двусмысленность приоритета на английском языке: мы берем "умный (указатель на член)", а не "(умный указатель) на член".
Я бы определил умный указатель на член как класс X с перегруженным operator ->* (T* lhs, X rhs)
.
В своей статье "Реализующий оператор → * для интеллектуальных указателей" Скотт Майерс лишь кратко затрагивает умный указатель на член, потому что тогда (1999) конкретная проблема была достаточно сложной для указателя raw для участника (сторона примечания: последняя решена элегантно с lambdas здесь).
В любом случае Скотт Майерс пишет в сноске:
Вскоре после написания проекта этой статьи один из моих консультаций клиенты показали мне проблему, которая, естественно, решалась умными указателями на участников. Я тоже был удивлен.
Я попытался найти пример такого естественного умного указателя на член. Но я не мог ни придумать ничего, ни поиска в Интернете, чтобы узнать, что я искал.
Вы знаете какой-либо реальный мир "умный указатель на член"?
ИЗМЕНИТЬ:
Я не ищу никакой перегрузки ->*
(как это делают некоторые EDSL).
Направляя примеры с семантикой, которые напоминают встроенный ->*
, мое определение выше явно требует, чтобы lhs
был необработанным указателем.