VS vs GCC aka who is right and who is wrong (I bet GCC is right)
This compiles on GCC 4.6 but doesn't with VS2010 sp1:  
Is it my fault or VS screwed up again?   

     #include "stdafx.h"
    
    enum Attribute{red_att,black_att,key_att,value_att};
    
    struct Color{};
    
    
    
    template<enum Attribute>
    struct Tag_Value;
    
    template<>
    struct Tag_Value<red_att>
    {
    	typedef Color type;
    };
    
    int main()
    {
      
        return 0;
    }
VS vs GCC aka who is right and who is wrong (I bet GCC is right)
===

This compiles on GCC 4.6 but doesn't with VS2010 sp1:  
Is it my fault or VS screwed up again?   

     #include "stdafx.h"
    
    enum Attribute{red_att,black_att,key_att,value_att};
    
    struct Color{};
    
    
    
    template<enum Attribute>
    struct Tag_Value;
    
    template<>
    struct Tag_Value<red_att>
    {
    	typedef Color type;
    };
    
    int main()
    {
      
        return 0;
    }