Solved: 42 - Variant
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user