SHOW:
|
|
- or go back to the newest paste.
1 | template<typename T> | |
2 | typename std::enable_if<std::_Is_numeric<T>::value,T>::type | |
3 | getValue() | |
4 | { | |
5 | switch(_valueDataType) | |
6 | { | |
7 | case ValueDataType::BOOLEAN_TYPE: | |
8 | if (_value == "true") { | |
9 | return (T)true; | |
10 | } else { | |
11 | return (T)false; | |
12 | } | |
13 | break; | |
14 | case ValueDataType::INTEGER_TYPE: | |
15 | return (T)atoi(_value.c_str()); | |
16 | break; | |
17 | case ValueDataType::DOUBLE_TYPE: | |
18 | return (T)atof(_value.c_str()); | |
19 | break; | |
20 | } | |
21 | return 0; | |
22 | } | |
23 | ||
24 | string getValueAsString() | |
25 | { | |
26 | return _value; | |
27 | } | |
28 | ||
29 | ||
30 | ||
31 | // Calling it | |
32 | ||
33 | string s; | |
34 | int a; | |
35 | bool b; | |
36 | double c; | |
37 | ||
38 | case ValueDataType::STRING_TYPE: | |
39 | s = iter->second.getValueAsString(); | |
40 | break; | |
41 | case ValueDataType::INTEGER_TYPE: | |
42 | a = iter->second.getValue<int>(); | |
43 | break; | |
44 | case ValueDataType::BOOLEAN_TYPE: | |
45 | b = iter->second.getValue<bool>(); | |
46 | break; | |
47 | case ValueDataType::DOUBLE_TYPE: | |
48 | c = iter->second.getValue<double>(); | |
49 | break; |