Template specialization for enum

c++, enums, template-specialization, templates

Solution

You can use `std::enable_if` with `std::is_enum` from `<type_traits>` to accomplish this.

In an answer to one of my questions, litb posted a very detailed and well-written explanation of how this can be done with the Boost equivalents.

Problem

Is it possible to specialize a templatized method for enums? Something like (the invalid code below): ``` template <typename T> void f(T value); template <> void f<enum T>(T value); ``` In the case it's not possible, then supposing I have specializations for a number of types, like `int`, `unsigned int`, `long long`, `unsigned long long`, etc, then which of the specializations an enum value will use?

Original source

Related problems