SFINAE und decltype (auto)

Wenn eine Funktionsvorlage zurückgegeben wirddecltype(auto) (oder ein anderer Typbezeichner mitauto), aber die Rückgabeerklärung wäre unkorrekt. Führt dies zu SFINAE? Ist derreturn Anweisung als unmittelbarer Kontext der Funktionssignatur betrachtet?

Nichts im N3690-Entwurf scheint dies zu erfordern. Standardmäßig trifft SFINAE vermutlich nicht zu.

Dies scheint unglücklich zu sein, da Sie eine Funktion schreiben können, um sie an eine andere Funktion weiterzuleiten, aber Sie können ihre Existenz nicht vom Delegaten abhängig machen, wie dies beim Schreiben mit Langschrift der Fall ist. Darüber hinaus kann die Überprüfung der Existenz einer Peer-Nonstatic-Member-Funktion nicht ohne durchgeführt werdendecltype(auto) dathis kann nicht in einer Funktionssignatur verwendet werden. Dies deutet jedoch auf ein grundsätzliches Problem hindecltype(auto) Bietet einen Pfad, um den Klassentyp innerhalb einer Mitgliedssignatur als vollständig zu betrachten, wenn dies nicht der Fall ist.

Wurde ein Vorschlag geschrieben oder wurde das Problem irgendwo formal analysiert?

Die Möglichkeit, den Klassentyp innerhalb einer Mitgliedersignatur als vollständig zu behandeln, kann andere Auswirkungen haben… aber das ist nur ein Grund für eine andere Frage.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage