I think to do that it is not safe at all.
There are backwards compatibility needs to have things in global space. And if you change the signature of those global things there will be link time problems.
The way to go is to leave the global space to language and library implementation and put your things into namespaces.
If you fork STL you'll have to maintain and synchronize with each release.
And vcruntime.h
isn't from STL but something related to Windows.
You can use std::size_t
however:
#include <cstddef>
std::size_t i = 0;
But ::size_t
will be there anyway.