Fun with Boost.MPL