Е
Size: a a a
Е
A
Е
std::variant
и макросная конструкция match
, которая в зависимости от содержимого этого варианта выполняет разные веткиvoid print_tree(const Tree *tree) {
match(*tree) {
of(MkEmpty) {
return;
}
of(MkLeaf, number) {
printf("%d\n", *number);
}
ofMany(MkNode, (left, number, right)) {
print_tree(*left);
printf("%d\n", *number);
print_tree(*right);
}
}
}
O
std::visit
знаком?Е
std::visit
знаком?O
O
overload
?Е
overload
?O
A
overload
?/¯
Е
Е
O
O
A
/¯
Е