struct __crt_locale_data is no longer defined in any publicly includable headers. MS deemed this to be "by design" in that they were implementation details that shouldn't have been used. (?)
It compiles in VS2015 with the nasty hack from the last link (and PR #9), but it's not really a fix.
I have not tried it with VS2015 as I do not have access to a compiler.