Frage

Nachdem ich meinen Code nach einiger Zeit debugging, habe ich den Grund für meine Probleme auf einige unerwartete Template-Spezialisierungsergebnisse mit Enable_IF:

verfolgt

Der folgende Code fehlschlägt die Behauptung in dotest () in Visual Studio 2010 (und 2008), während es nicht in G ++ 3.4.5 ist. Wenn ich jedoch die Vorlage von someclass oder um my_condition aus dem Geltungsbereich von someclass arbeitet, funktioniert es auch in MSVC.

Gibt es etwas nicht mit diesem Code, der dieses Verhalten (zumindest teilweise) erklären würde oder ist dies ein Fehler im MSVC-Compiler?

(Verwenden dieses Beispielcodes ist es für den Schub und die C ++ 0x STL-Version)

generasacodicetagpre.


Wenn Sie versuchen, es zu fixieren, indem Sie den Zustand aus dem Geltungsbereich bewegen, bemerkte ich auch, dass dies nicht einmal genug genug ist, wenn Sie STD :: Enable_F verwenden, aber zumindest funktioniert es mit Boost :: enction_if:

generasacodicetagpre.

Ich hoffe, jemand hat dafür eine Erklärung dafür.

War es hilfreich?

Lösung

Alles ist in Ordnung mit Ihrem Code, es ist nur dieses VC-Buggy.Es ist bekannt, Probleme mit der Partial-Template-Spezialisierung von Vorlagenmitgliedklassen zu haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top