Я не уверен, в чем именно заключается проблема - я предполагаю, что он рассматривает enum Attribute
как начало нового объявления enum ... возможно, как члена Tag_Value.Таким образом, у вас есть два Attribute
перечисления, и это не позволит вам специализировать одно с другим.
Чтобы исправить, просто избавьтесь от enum
:
template<enum Attribute> struct Tag_Value;
к этому:
template<Attribute> struct Tag_Value;