0
0
mirror of https://github.com/zeux/pugixml.git synced 2024-12-31 00:13:01 +08:00

Enable long long support for C++11 and for MSVC 2008+

git-svn-id: http://pugixml.googlecode.com/svn/trunk@967 99668b35-9821-0410-8761-19e4c4f06640
This commit is contained in:
Arseny Kapoulkine 2014-02-08 21:59:14 +00:00
parent 44d3ae5e90
commit 2bd99cff86
2 changed files with 29 additions and 4 deletions

View File

@ -3394,9 +3394,17 @@ PUGI__NS_BEGIN
int base = get_integer_base(value);
#ifdef PUGIXML_WCHAR_MODE
return wcstoll(value, 0, base);
#ifdef PUGI__MSVC_CRT_VERSION
return _wcstoi64(value, 0, base);
#else
return wcstoll(value, 0, base);
#endif
#else
return strtoll(value, 0, base);
#ifdef PUGI__MSVC_CRT_VERSION
return _strtoi64(value, 0, base);
#else
return strtoll(value, 0, base);
#endif
#endif
}
@ -3407,9 +3415,17 @@ PUGI__NS_BEGIN
int base = get_integer_base(value);
#ifdef PUGIXML_WCHAR_MODE
return wcstoull(value, 0, base);
#ifdef PUGI__MSVC_CRT_VERSION
return _wcstoui64(value, 0, base);
#else
return wcstoull(value, 0, base);
#endif
#else
return strtoull(value, 0, base);
#ifdef PUGI__MSVC_CRT_VERSION
return _strtoui64(value, 0, base);
#else
return strtoull(value, 0, base);
#endif
#endif
}
#endif

View File

@ -63,6 +63,15 @@
# define PUGIXML_FUNCTION PUGIXML_API
#endif
// If the platform is known to have long long support, enable long long functions
#ifndef PUGIXML_HAS_LONG_LONG
# if defined(__cplusplus) && __cplusplus >= 201103
# define PUGIXML_HAS_LONG_LONG
# elif defined(_MSC_VER) && _MSC_VER >= 1400
# define PUGIXML_HAS_LONG_LONG
# endif
#endif
// Character interface macros
#ifdef PUGIXML_WCHAR_MODE
# define PUGIXML_TEXT(t) L ## t