Was genau ist der im C ++ 11-Standard erwähnte „unmittelbare Kontext“, für den SFINAE gilt?

Absatz 14.8.2 / 8 des C ++ 11-Standards legt die Bedingungen fest, unter denen ein Substitutionsfehler zu einem "harten" Kompilierungsfehler (wodurch das Kompilieren fehlschlägt) oder zu einem "weichen" Fehler führen soll, der gerechtfertigt wäre Bewirken, dass der Compiler eine Vorlage aus einer Reihe von Kandidaten für die Überladungsauflösung verwirft (ohne dass die Kompilierung fehlschlägt und die bekannte SFINAE-Sprache aktiviert wird):

Wenn eine Ersetzung zu einem ungültigen Typ oder Ausdruck führt, schlägt die Typableitung fehl. Ein ungültiger Typ oder Ausdruck wäre falsch, wenn er mit den ersetzten Argumenten geschrieben würde. [Hinweis: Die Zugriffsprüfung erfolgt im Rahmen des Substitutionsprozesses. —Ende Notiz]Nur ungültige Typen und Ausdrücke im unmittelbaren Kontext des Funktionstyps und seiner Vorlagenparametertypen können zu einem Abzugsfehler führen. [...]

Die Wörter "unmittelbarer Kontext"im gesamten C ++ 11-Standard nur achtmal vorkommen und jedes Mal von einer Instanz des folgenden (nicht normativen) Textes gefolgt werden (oder als Teil davon auftreten):

[Hinweis:Die Auswertung der ersetzten Typen und Ausdrücke kann zu Nebenwirkungen führen, wie zum Beispiel der Instanziierung von Klassenvorlagenspezialisierungen und / oder Funktionsvorlagenspezialisierungen, der Erzeugung implizit definierter Funktionen usw. Solche Nebenwirkungen liegen nicht im „unmittelbaren Kontext“ und kann dazu führen, dass das Programm falsch aufgebaut wird.—Ende Notiz]

Die Notiz gibt einen (nicht sehr großzügigen) Hinweis darauf, was damit gemeint istunmittelbarer Kontext, aber zumindest für mich reicht dies oft nicht aus, um zu entscheiden, ob eine Substitution einen "harten" Übersetzungsfehler verursachen soll oder nicht.

FRAGE:

Können Sie eine Erklärung, eine Entscheidungsprozedur und / oder einige konkrete Beispiele angeben, um herauszufinden, in welchen Fällen ein Substitutionsfehler in der Datenbank auftritt und nicht. "unmittelbarer Kontext"des Funktionstyps und seiner Vorlagenparametertypen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage