Adding natvis files to the VS solution means that if you use CMake to generate a VS solution, natvis will just work. However, this is strictly inferior to putting the natvis files directly in the PDB. For starters, it only works if you generate a VS project, which not everyone does, but even then it's link.exe specific. PDB files support embedding natvis files, and this way it works everywhere.
I originally found out about this because I thought my natvis files weren't getting loaded because I wasn't getting visualization of Optional<T>. Turns out that visualizer was just broken, so I went ahead and fixed it, and also added a visualizer for Expected<T> at the same time.
Not really sure who to add for a review here, so + a couple of random people
I'm wondering if it would be nicer to do a check_linker_flag_exists for /natvis. I'm fine with this though.