OSDN Git Service

Fixed chkconfig option
[ultramonkey-l7/ultramonkey-l7-v2.git] / logger / lexical_cast.h
1 #ifndef __LEXICAL_CAST_H__
2 #define __LEXICAL_CAST_H__
3
4 #include <string>
5 #include <sstream>
6
7 namespace l7vs
8 {
9         class bad_lexical_cast : public std::bad_cast
10         {
11         public:
12                 bad_lexical_cast() {}
13         };
14
15         template <typename T>
16         T lexical_cast(const std::string& s)
17         {
18                 std::stringstream ss;
19                 T d;
20                 ss << s.c_str();
21                 while( !ss.eof() ){
22                         ss >> d;
23                         if(ss.fail()) {
24                                 throw bad_lexical_cast();
25                         }
26                 }
27                 return d;
28         }
29 }
30
31 #endif  //__LEXICAL_CAST_H__