Wofür wird decltype (auto) verwendet?

In c ++ 14 wurde diedecltype(auto) Redewendung wird eingeführt.

Typischerweise wird es verwendet, umermöglichenauto Erklärungen zur Verwendung derdecltype Regeln für den gegebenen Ausdruck.

Auf der Suche nach Beispielen für eine "gute" Verwendung der Redewendung fallen mir nur Dinge wie die folgenden ein (vonScott Meyers), nämlich fürDer Rückgabetyp einer Funktion wird abgezogen:

template<typename ContainerType, typename IndexType>                // C++14
decltype(auto) grab(ContainerType&& container, IndexType&& index)
{
  authenticateUser();
  return std::forward<ContainerType>(container)[std::forward<IndexType>(index)];
}

Gibt es andere Beispiele, in denen diese neue Sprachfunktion nützlich ist?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage