If you have a function template and want to disable it for some properties on the template parameter, you can simply use SFINAE. But what if you have a non-template member function of a class template and want to disable it based on properties of the template? You can't use SFINAE then.