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.