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 {
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 {};
}
auto sum_numeric_variants(const std::vector<Value>& values) -> double {
(void)values;
return 0.0;
auto sum = 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 {
(void)value;
return false;
return std::holds_alternative<std::string>(value);
}
} // namespace cpp17