Getting us completely macro-free there… even though it did require a separate version of those functions if the ID is a pointer. Part of P0134, funded by [Anonymous].