eliminate unnecessary workaround for modern msvc versions
add back the has_xxx workaround for msvc if used with nvcc