Add missing auto for empty
Add pp workarounds for msvc