public static bool try_parse (string str, out int result = null, out unowned string unparsed = null, uint _base = 0) {
char* endptr;
+ errno = 0;
long long_result = strtol (str, out endptr, (int) _base);
if (endptr == (char*) str + str.length) {
unparsed = "";
public static bool try_parse (string str, out uint result = null, out unowned string unparsed = null, uint _base = 0) {
char* endptr;
+ errno = 0;
ulong ulong_result = strtoul (str, out endptr, (int) _base);
if (endptr == (char*) str + str.length) {
unparsed = "";
public static bool try_parse (string str, out long result = null, out unowned string unparsed = null, uint _base = 0) {
char* endptr;
+ errno = 0;
result = strtol (str, out endptr, (int) _base);
if (endptr == (char*) str + str.length) {
unparsed = "";
public static bool try_parse (string str, out ulong result = null, out unowned string unparsed = null, uint _base = 0) {
char* endptr;
+ errno = 0;
result = strtoul (str, out endptr, (int) _base);
if (endptr == (char*) str + str.length) {
unparsed = "";
[Version (since = "2.12")]
public static bool try_parse (string str, out int64 result = null, out unowned string unparsed = null, uint _base = 0) {
char* endptr;
+ errno = 0;
result = ascii_strtoll (str, out endptr, _base);
if (endptr == (char*) str + str.length) {
unparsed = "";
public static bool try_parse (string str, out uint64 result = null, out unowned string unparsed = null, uint _base = 0) {
char* endptr;
+ errno = 0;
result = ascii_strtoull (str, out endptr, _base);
if (endptr == (char*) str + str.length) {
unparsed = "";
public static bool try_parse (string str, out float result = null, out unowned string unparsed = null) {
char* endptr;
+ errno = 0;
result = strtof (str, out endptr);
if (endptr == (char*) str + str.length) {
unparsed = "";
public static bool try_parse (string str, out double result = null, out unowned string unparsed = null) {
char* endptr;
+ errno = 0;
result = ascii_strtod (str, out endptr);
if (endptr == (char*) str + str.length) {
unparsed = "";