Ich probiere Beispiele aus Walter Browns TMP-Talk aus und versuche, seine% co_de zu bekommen % Implementierung funktioniert.
Die Implementierung scheint jedoch fälschlicherweise wieder wahr zu sein, was zu der Annahme führt, dass es einige Details von SFINAE gibt, die ich nicht verstehe.
%Vor%Ausgabe ist:
%Vor%Ich bin auf gcc 4.8.2 auf Ubuntu.
Das Problem ist, dass gcc 4.8.2 (und vor gcc 5.0) nicht verwendete Argumente in Alias-Vorlagen nicht als für SFINAE geeignet ansieht. Die Problemumgehung besteht darin, an eine voider
-Klassenvorlage weiterzuleiten:
Von Ссылка Abschnitt 2.3:
Leider haben wir bei der Arbeit mit der über sehr einfache Definition. Wir vermuten (weiterhin), dass dies an der CWG-Ausgabe 1558 liegt: "Die Behandlung nicht verwendeter Argumente in einer Aliasvorlagen - Spezialisierung wird nicht von der aktuelle Formulierung von 14.5.7 [temp.alias]. "
Tags und Links c++ c++11 templates template-specialization sfinae