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