make swap inline to follow ODR