Jusqu'à Visual Studio 2013, le compilateur autorisait les const dans les containers.
std::vector<const Classe> variable_nok; const std::vector<Classe> variable_ok;
Visual Studio autorise la spécialisation dans l'entête des classes alors que la spécialisation doit se faire hors de l'entête.
class ClasseBad { template<Class T> void foo(T t){} template<> void foo<int>(int t){} }; class ClasseGood { template<Class T> void foo(T t){} }; template<> void ClasseGood::foo<int>(int t){}