Nik Bougalis wrote:
Your criticism of custom reimplementations of things like isdigit isn't entirely off the mark. Such things should be avoided almost always, and when reimplemented, there should be a clear and convincing reason. Maybe that's the case here, maybe it isn't - that's a legitimate concern and a fair one to bring up.
But have you considered, for example, the fact that std::isdigit can return true for digits other than 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9? According to cppreference, "some implementations (e.g. Microsoft in 1252 codepage) may classify additional single-byte characters as digits"
Yes, I dislike std locale-related things for this reason. If there were std::is_ascii_digit() I'd use it. I was actually surprised by the result that I got for std::isdigit, which I only tried as an afterthought. Regards, Phil.