I think there's something funny about passing val++ to make_pair