]> git.stg.codes - stg.git/commitdiff
Добавлена специализация функций str2x для long и unsigned long (на
authorMaxim Mamontov <faust@user-desktop.(none)>
Tue, 9 Nov 2010 12:36:18 +0000 (14:36 +0200)
committerMaxim Mamontov <faust@user-desktop.(none)>
Tue, 9 Nov 2010 12:36:18 +0000 (14:36 +0200)
        64-битных системах long != int)

stglibs/common.lib/common.cpp
stglibs/common.lib/common.h

index a5899dd2c2fdaaea9311b2ef3b1a81a648ab7ca9..eb39da6a8138d6611406ca76956416a7dc2a5491 100644 (file)
@@ -728,6 +728,26 @@ int str2x(const std::string & str, unsigned & x)
 {
 x = strtoul(str.c_str(), NULL, 10);
 
+if (errno == ERANGE)
+    return -1;
+
+return 0;
+}
+//---------------------------------------------------------------------------
+int str2x(const std::string & str, long & x)
+{
+x = strtol(str.c_str(), NULL, 10);
+
+if (errno == ERANGE)
+    return -1;
+
+return 0;
+}
+//---------------------------------------------------------------------------
+int str2x(const std::string & str, unsigned long & x)
+{
+x = strtoul(str.c_str(), NULL, 10);
+
 if (errno == ERANGE)
     return -1;
 
index 971a2e725fffb0b13ce22511ac3d52b8b32cd6e5..904c6e470ed5b5f2be7cc030ac060564e5d74f62 100644 (file)
@@ -215,6 +215,8 @@ const std::string & unsigned2str(varT x, std::string & s)
 //-----------------------------------------------------------------------------
 int str2x(const std::string & str, int & x);
 int str2x(const std::string & str, unsigned & x);
+int str2x(const std::string & str, long & x);
+int str2x(const std::string & str, unsigned long & x);
 int str2x(const std::string & str, long long & x);
 int str2x(const std::string & str, unsigned long long & x);
 //-----------------------------------------------------------------------------