#pragma once #include #include #include #include namespace ServerRuntime { namespace CommandParsing { inline bool TryParseInt(const std::string &text, int *outValue) { if (outValue == nullptr || text.empty()) { return false; } char *end = nullptr; errno = 0; const long parsedValue = std::strtol(text.c_str(), &end, 10); if (end == text.c_str() || *end != '\0') { return false; } if (errno == ERANGE) { return false; } if (parsedValue < (std::numeric_limits::min)() || parsedValue > (std::numeric_limits::max)()) { return false; } *outValue = static_cast(parsedValue); return true; } } }