C++ Template Specialization Using Enable If
In C++ metaprogramming, std::enable_if is an important function to enable certain types for template specialization via some predicates known at the compile time. Using types that are not enabled by std::enable_if for template specialization will result in compile-time error.
https://leimao.github.io/blog/CPP-Enable-If/