New bases<> implementation without boost::mpl