Clang: Vorlagenabzug fehlgeschlagen "doppelt" gegenüber "doppelt"

10

Betrachten Sie den folgenden Code, der eine Funktion mit variablen Argumenten verwendet:

%Vor%

Das Kompilieren mit g ++ 4.7.3 funktioniert einwandfrei, und das Ausführen von 1024.0 ergibt sich wie erwartet.

Beim Kompilieren mit icpc 14.0.2 stürzt es ab ...

%Vor%

Das Kompilieren mit clang 3.5.0-1 gibt die folgende Fehlermeldung:

%Vor%

Ist das ein Fehler, oder sollte g ++ das nicht kompiliert haben?

Warum leitet clang diese "widersprüchlichen" Typen von double und <double> ab, soll <double> beispielsweise eine entpackte Argliste darstellen?

Update icpc 14.0.3 stürzt nicht ab und das Programm kompiliert und läuft korrekt.

Siehe DPD200244439 unter Intel® Composer XE 2013 SP1 Compiler-Fixliste

    
WaelJ 12.05.2014, 12:18
quelle

1 Antwort

1

Nach der obigen Diskussion scheint es, dass dies in der Tat ein Bug im Klang ist.

Wie von gha.st hervorgehoben, funktioniert das Überspringen von template using und das Verwenden des nativen Funktionstyps direkt:

%Vor%

Ich habe einen Fehler gegen diese hier eingereicht.

    
WaelJ 24.05.2014, 17:09
quelle