Fix lexical_casts for systems where time_t is int

This commit is contained in:
Jon Daniel 2012-05-03 02:07:45 +00:00
parent d6818a122b
commit cb4a4fcecc
2 changed files with 12 additions and 12 deletions

View file

@ -79,10 +79,10 @@ size_t lexical_cast_default<size_t, const char*>(const char* a, size_t def)
}
}
template<>
time_t lexical_cast<time_t, const std::string&>(const std::string& a)
long lexical_cast<long, const std::string&>(const std::string& a)
{
char* endptr;
time_t res = strtol(a.c_str(), &endptr, 10);
long res = strtol(a.c_str(), &endptr, 10);
if (a.empty() || *endptr != '\0') {
throw bad_lexical_cast();
@ -92,10 +92,10 @@ time_t lexical_cast<time_t, const std::string&>(const std::string& a)
}
template<>
time_t lexical_cast<time_t, const char*>(const char* a)
long lexical_cast<long, const char*>(const char* a)
{
char* endptr;
time_t res = strtol(a, &endptr, 10);
long res = strtol(a, &endptr, 10);
if (*a == '\0' || *endptr != '\0') {
throw bad_lexical_cast();
@ -104,14 +104,14 @@ time_t lexical_cast<time_t, const char*>(const char* a)
}
}
template<>
time_t lexical_cast_default<time_t, const std::string&>(const std::string& a, time_t def)
long lexical_cast_default<long, const std::string&>(const std::string& a, long def)
{
if(a.empty()) {
return def;
}
char* endptr;
time_t res = strtol(a.c_str(), &endptr, 10);
long res = strtol(a.c_str(), &endptr, 10);
if (*endptr != '\0') {
return def;
@ -120,14 +120,14 @@ time_t lexical_cast_default<time_t, const std::string&>(const std::string& a, ti
}
}
template<>
time_t lexical_cast_default<time_t, const char*>(const char* a, time_t def)
long lexical_cast_default<long, const char*>(const char* a, long def)
{
if(*a == '\0') {
return def;
}
char* endptr;
time_t res = strtol(a, &endptr, 10);
long res = strtol(a, &endptr, 10);
if (*endptr != '\0') {
return def;

View file

@ -106,16 +106,16 @@ template<>
size_t lexical_cast_default<size_t, const char*>(const char* a, size_t def);
template<>
time_t lexical_cast<time_t, const std::string&>(const std::string& a);
long lexical_cast<long, const std::string&>(const std::string& a);
template<>
time_t lexical_cast<time_t, const char*>(const char* a);
long lexical_cast<long, const char*>(const char* a);
template<>
time_t lexical_cast_default<time_t, const std::string&>(const std::string& a, time_t def);
long lexical_cast_default<long, const std::string&>(const std::string& a, long def);
template<>
time_t lexical_cast_default<time_t, const char*>(const char* a, time_t def);
long lexical_cast_default<long, const char*>(const char* a, long def);
template<>
int lexical_cast<int, const std::string&>(const std::string& a);