argument dependent lookup rules satisfied when swap functions are templatized