I believe there is a standard cross-platform maximum value, and you mention it in your last sentence: std::numeric_limits!
Uhm... Using "-1" to assign the maximum value is in fact as standard and cross-platform as using std::numeric_limits, which was basically my entire point.
The difference between those is only "textual solution" VS "mathematical solution" and thus a matter of personal preference.
Using -1 for size_t is sometimes even prefered to assign it's maximum value, since there is no cross-platform #define for it (most use either SIZE_T_MAX or SIZE_MAX).
In fact llvm's libc++ uses it for it's std::numeric_limits implementation and for std::string's npos.