Здравствуйте, Marty, Вы писали:
M>Здравствуйте, rg45, Вы писали:
R>>Ну вот этотАвтор: Marty
Дата: 23.10 22:11
твой пример, без особого труда мог бы выглятеть как-то вот так:
R>>R>>void func(MyVariant v)
R>>{
R>> return MyVisit(v,
R>> [](const A& a) {
R>> doSomething(a);
R>> return 1;
R>> },
R>> [](const AnyTypeOfList<B, C> auto&) {
R>> log << "Error: B or C not allowed here not allowed here\n";
R>> return -1;
R>> },
R>> [](const auto&) {
R>> return 0; // OK
R>> }
R>> );
R>>}
R>>
M>А как выглядит MyVisit?
Эскизно примерно вот так:
decltype(auto) MyVisit(auto&& t, Callable auto&&...f)
{
return std::visit(Overloaded(f...), v);
}