事情是這樣的,有人問我他想做到這件事:
enum class Enum {A, B, C ... };
template <Enum E, int N>
struct MyStruct {
void func();
};
template <int N>
void MyStruct<Enum::A, N>::func() {...}
看完後我就說了,你想做的事 function 的偏特化,這在 C++ 是不被允許的,所以當然會編譯失敗囉
當然,下一個問題就是:那要怎麼做?
以下提供幾個方法 (先不考慮整個 class 重構把 template argument 拆掉)