NVCC silently compiles std::swap to incorrect code (with no error or warning) in certain scenarios

you may wish to file a bug.