Given
enum Type {A,B,C,D,E};
struct Thing {
template <Type N> void foo() { } // Do whatever.
};
template <> void Thing::foo<C>() { } // Do whatever specialization.
template <> void Thing::foo<E>() { } // Do whatever specialization.
How to determine during compile time that Thing::foo
is specialized for Type
values C and E but not for other values?