21 if constexpr (std::is_same_v<T, std::string>) {
23 }
else if constexpr (std::is_same_v<T, bool>) {
24 return value ?
"true" :
"false";
25 }
else if constexpr (std::is_arithmetic_v<T>) {
26 return std::to_string(value);
27 }
else if constexpr (std::is_same_v<T, std::chrono::sys_time<std::chrono::microseconds>>) {
29 }
else if constexpr (std::is_same_v<T, std::chrono::milliseconds> || std::is_same_v<T, std::chrono::seconds>
30 || std::is_same_v<T, std::chrono::minutes>) {
31 return std::to_string(value.count());
41 if constexpr (std::is_same_v<T, std::string>) {
43 }
else if constexpr (std::is_same_v<T, bool>) {
44 return string ==
"true";
45 }
else if constexpr (std::is_integral_v<T> && std::is_signed_v<T>) {
46 return static_cast<T>(std::stoll(
string));
47 }
else if constexpr (std::is_integral_v<T> && std::is_unsigned_v<T>) {
48 return static_cast<T>(std::stoull(
string));
49 }
else if constexpr (std::is_same_v<T, float>) {
50 return std::stof(
string);
51 }
else if constexpr (std::is_same_v<T, double>) {
52 return std::stod(
string);
53 }
else if constexpr (std::is_same_v<T, std::chrono::sys_time<std::chrono::microseconds>>) {
55 }
else if constexpr (std::is_same_v<T, std::chrono::milliseconds>) {
56 return std::chrono::milliseconds(std::stoull(
string));
57 }
else if constexpr (std::is_same_v<T, std::chrono::seconds>) {
58 return std::chrono::seconds(std::stoull(
string));
59 }
else if constexpr (std::is_same_v<T, std::chrono::minutes>) {
60 return std::chrono::minutes(std::stoull(
string));