In preparation for using the implementation of basic_string and
basic_string_view from redundant-string-cstr.cpp in other checks, let's
extract it to a header.
Using the existing <string.h> to provide size_t, using that to define
size_type and using it rather than the previous "size" type makes it
easier to provide the size() method later and makes the implementation
closer to the standard.
Sorry I just noticed this - should we keep using the __SYZE_TYPE__ macro that existed in the previous patch? The purpose of this header is to not include any standard header, and yet this is done in line 5 so it kinda defeats the purpose.
I.e add the following under line 8:
And then use that in line 17.