~
[scx.git] / include / Conv.hpp
blobe7964cbebd591ba6251c976fd28e0b7f9f535a65
1 #ifndef SCX_CONV_HPP
2 #define SCX_CONV_HPP
4 #include <sstream>
5 #include <string>
6 #include <cctype>
7 #include <algorithm>
8 using namespace std;
10 namespace scx {
12 template<typename num_t>
13 static inline num_t StrToNum(const string& str)
15 stringstream stream;
16 stream << str;
17 num_t num;
18 stream >> dec >> num;
19 return num;
22 template<typename num_t>
23 static inline string NumToStr(const num_t& num, streamsize precision = 0)
25 stringstream stream;
26 stream.setf(ios::fixed, ios::floatfield);
27 stream.precision(precision);
28 stream << dec << num;
29 return stream.str();
32 template<typename num_t>
33 static inline string NumHToStr(const num_t& num, streamsize precision = 0)
35 stringstream stream;
36 stream.setf(ios::fixed, ios::floatfield);
37 stream.precision(precision);
38 stream << hex << num;
39 return stream.str();
42 template<typename num_t>
43 static inline string NumOToStr(const num_t& num, streamsize precision = 0)
45 stringstream stream;
46 stream.setf(ios::fixed, ios::floatfield);
47 stream.precision(precision);
48 stream << oct << num;
49 return stream.str();
52 static inline string ToLower(const string& str)
54 string lower;
55 lower.resize(str.size());
56 transform(str.begin(), str.end(), lower.begin(), (int (*)(int))tolower);
57 return lower;
60 static inline string ToUpper(const string& str)
62 string upper;
63 upper.resize(str.size());
64 transform(str.begin(), str.end(), upper.begin(), (int (*)(int))toupper);
65 return upper;
69 static inline bool IsLower(const string& str)
71 return true;
74 static inline bool IsUpper(const string& str)
76 return true;
82 #endif