Template Spezialisierung in Klasse
-
Hallo,
ich habe folgenden Code
#include <iostream> template <typename T> struct Counter { template <T evaluation> struct S_BitCnt { static const unsigned bitCount = S_BitCnt<(evaluation << 1) >::bitCount + 1 ; }; template <> struct S_BitCnt<0> { static const unsigned bitCount = 0; }; }; int main() { std::cout << Counter<unsigned>::S_BitCnt<1>::bitCount << std::endl; }Der Code compiliert mit dem MS Compiler. Wir haben hier einen Embedded Compiler der mir sagt das die Spezialisierung in diesem Scope nicht erlaubt ist mit verweis auf die Spezialisierung in Zeile 12.
Mich würde interessieren ob es vom Standard her erlaubt ist in einer (Template)-Klasse eine andere Template Klasse zu spezialisieren.
Danke im voraus
Tobi:schland:
-
Der Embedded-Compiler hat Recht. Sowas ist nicht erlaubt.
-
Richtschnur: Wenn der MSVC irgendwas zu Templates behauptet und ein anderer Compiler widerspricht, dann hat der andere Compiler Recht.
-
Danke euch beiden für die Antwort.
