OSDN Git Service
(root)
/
ultramonkey-l7
/
ultramonkey-l7-v2.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
history
|
raw
|
HEAD
Port range check was implemented.
[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
#include <typeinfo>
7
8
9
namespace l7vs
10
{
11
class bad_lexical_cast : public std::bad_cast
12
{
13
public:
14
bad_lexical_cast() {}
15
};
16
17
template <typename T>
18
T lexical_cast(const std::string& s)
19
{
20
std::stringstream ss;
21
T d;
22
ss << s.c_str();
23
while( !ss.eof() ){
24
ss >> d;
25
if(ss.fail()) {
26
throw bad_lexical_cast();
27
}
28
}
29
return d;
30
}
31
}
32
33
#endif //__LEXICAL_CAST_H__