ADL-based swap call moved to an utility function (after mistaken attempt at rev 41220 to solve name-hiding issues)