Compile PhotoshopAPI with address sanitizers and wall
In order to get the PhotoshopAPI closer to being production ready we should always compile it with /Wall and /fsanitize=address (This is the only sanitizer currently supported out of the box with MSVC). Especially since our test cases cant and wont ever be able to cover all possible issues
Partial implementation by implementing sanitizers and Clang as an additional test suite, increasing warning levels is still TBD
Some considerations for MSVC warnings would be these:
/W4 /w44062 /w44165 /w34365 /we4464 /w45263
where
4062 is for a switch misses some enum members.
4165 is for HRESULT being used as a bool (almost always a mistake)
4365 is for signed/unsigned mismatch in integer conversion
4464 is for #include containing .. in the path (this should never happen)
5264 is for using std:move when returning a temporary.