An example of using SFINAE
macros I made, which makes enabling and disabling templates based on provided type a bit more humane ;)
More or different IS_XXXXXX
macros could be made easily by wrapping type_traits methods similar those provided in the code example.