¿Existe un operador de navegación seguro para C ++?
En Modern C ++, ¿hay alguna manera de hacer una navegación segura?
Por ejemplo,en lugar de hacer...
if (p && p->q && p->q->r)
p->q->r->DoSomething();
... tener una sintaxis sucinta mediante el uso de algún tipo de puntero inteligente de cortocircuito, o algún otro tipo de sobrecarga de operador que aproveche la sintaxis, o algo en la Biblioteca C ++ estándar, o en Boost.
p?->q?->r?->DoSomething(); // C++ pseudo-code.
El contexto es C ++ 17 en particular.