Ist es möglich, eine Vorlage für die Sprachverknüpfung zu spezialisieren?

8

Die Sprachverknüpfung einer Funktion gehört zu ihrem Typ:

7.5.1 [dcl.link] des ISO C ++ Standards:

  

Die Standardsprachenverknüpfung aller Funktionstypen, Funktionsnamen und Variablennamen ist die C ++ - Sprachverknüpfung. Zwei Funktionstypen mit unterschiedlichen Sprachverknüpfungen sind unterschiedliche Typen, auch wenn sie ansonsten identisch sind.

Ist es möglich, eine Vorlage auf den Typ der Verknüpfung eines Funktionszeigers zu spezialisieren oder den Typ eines Funktionszeigers anderweitig zu untersuchen, um seine Verknüpfung zur Kompilierungszeit zu bestimmen?

Dieser erste Versuch scheint nicht legal:

%Vor%

g++-4.6 outputs:

%Vor%

Gibt es eine Anwendung von SFINAE, die diese Funktionalität implementieren könnte?

    
Jared Hoberock 12.10.2012, 23:21
quelle

1 Antwort

7

Ja, ich glaube, dass Sie in der Lage sein sollten, eine Vorlage basierend auf ihrer Sprachverknüpfung nach dem C ++ - Standard zu spezialisieren. Ich habe den folgenden Code mit dem Comeau-Compiler online getestet und ohne Fehler kompiliert:

%Vor%

Ich glaube jedoch, dass aufgrund eines gcc-Fehlers gcc keine Funktionstypen unterscheidet basierend auf der Sprachverknüpfung, so ist dies mit gcc nicht möglich (und es scheint nicht sicher zu sein, wann sie das beheben werden).

    
Jesse Good 13.10.2012, 01:03
quelle

Tags und Links