#include <iostream>

enum class E
{
    A,B,C
};

class Some
{
public:
    template <E> void func();
};


template<> void Some::func<E::A>()
{
   std::cout << "A\n";
}
template<> void Some::func<E::B>()
{
   std::cout << "B\n";
}
template<> void Some::func<E::C>()
{
   std::cout << "B\n";
}

int main()
{
    Some some;
    some.func<E::A>();
    some.func<E::B>();
    some.func<E::C>();
}
