ssize_t is a POSIX type, so it's not available on MSVC. Not sure whether it can be made conditional to use SSIZE_T from on msvc or if something like ptrdiff_t may be more appropriate.
The use of Alternative operatos (or and and instead of || and &&) in the code also requires extra compiler definitions or headers which isn't ideal either.
ssize_t is a POSIX type, so it's not available on MSVC. Not sure whether it can be made conditional to use SSIZE_T from on msvc or if something like ptrdiff_t may be more appropriate.