One more thing do I actually need to build a mpl::bool_ out of the
is_same function?
enable_if requres an integral constant wrapper. There is a variant called enable_if_c which allows you to skip that in this case (automatically wraps it, I believe, like mpl::vector_c):