Solved: 42 - Variant

This commit is contained in:
2026-08-22 10:24:26 +03:00
parent 29df33a4e9
commit 8fa5630858
+19 -5
View File
@@ -3,18 +3,32 @@
namespace cpp17 { namespace cpp17 {
auto variant_to_string(const Value& value) -> std::string { auto variant_to_string(const Value& value) -> std::string {
(void)value; if (std::holds_alternative<int>(value)) {
return "int:" + std::to_string(std::get<int>(value));
}
if (std::holds_alternative<double>(value)) {
return "double:" + std::to_string(std::get<double>(value));
}
if (std::holds_alternative<std::string>(value)) {
return "string:" +std::get<std::string>(value);
}
return {}; return {};
} }
auto sum_numeric_variants(const std::vector<Value>& values) -> double { auto sum_numeric_variants(const std::vector<Value>& values) -> double {
(void)values; auto sum = 0.0;
return 0.0; for (const auto& value : values) {
if (std::holds_alternative<int>(value)) {
sum += static_cast<double>(std::get<int>(value));
} else if (std::holds_alternative<double>(value)) {
sum += std::get<double>(value);
}
}
return sum;
} }
auto is_string(const Value& value) -> bool { auto is_string(const Value& value) -> bool {
(void)value; return std::holds_alternative<std::string>(value);
return false;
} }
} // namespace cpp17 } // namespace cpp17