Сообщение Re[4]: std::get(std::variant) от 23.10.2025 19:11
Изменено 23.10.2025 20:00 Marty
Re[4]: std::get(std::variant)
Здравствуйте, rg45, Вы писали:
R>Да прям уж куча:
Именно что куча
R>https://coliru.stacked-crooked.com/a/3bf34d7526b1245c
R>
R>А как бы ты хотел чтоб это выглядело? Можешь примерчик набросать?
Как-то так:
Просто и понятно.
Или switch(kind) сделать, или ещё что
R>Да прям уж куча:
Именно что куча
R>https://coliru.stacked-crooked.com/a/3bf34d7526b1245c
R>
R> std::visit([](auto&& t) {
R> std::cout << "Тут лежит " << t << std::endl;
R> }, v);
R>R>А как бы ты хотел чтоб это выглядело? Можешь примерчик набросать?
Как-то так:
int func(MyVariant v)
{
auto kind = getKind(v);
if (kind==Kind::A)
{
doSomething(get<Kind::A>(v));
// doSomething(get(kind, v)); // или даже так
}
else if (kind==Kind::B || kind==Kind::C)
{
log << "Error: " << enum_serialize(kind) << " not allowed here\n";
return -1; // error - B or C not allowed here
}
else
{
return 0; // OK
}
}Просто и понятно.
Или switch(kind) сделать, или ещё что
Re[4]: std::get(std::variant)
Здравствуйте, rg45, Вы писали:
R>Да прям уж куча:
Именно что куча
R>https://coliru.stacked-crooked.com/a/3bf34d7526b1245c
R>
R>А как бы ты хотел чтоб это выглядело? Можешь примерчик набросать?
Как-то так:
Просто и понятно.
Или switch(kind) сделать, или ещё что
R>Да прям уж куча:
Именно что куча
R>https://coliru.stacked-crooked.com/a/3bf34d7526b1245c
R>
R> std::visit([](auto&& t) {
R> std::cout << "Тут лежит " << t << std::endl;
R> }, v);
R>R>А как бы ты хотел чтоб это выглядело? Можешь примерчик набросать?
Как-то так:
int func(MyVariant v)
{
auto kind = getKind(v);
if (kind==Kind::A)
{
doSomething(get<Kind::A>(v));
// doSomething(get(kind, v)); // или даже так
}
else if (kind==Kind::B || kind==Kind::C)
{
log << "Error: " << enum_serialize(kind) << " not allowed here\n";
return -1; // error - B or C not allowed here
}
else
{
return 0; // OK
}
//...
}Просто и понятно.
Или switch(kind) сделать, или ещё что