Как я могу кодировать что -то вроде коммутатора для std :: variant?C++

Программы на C++. Форум разработчиков
Anonymous
Как я могу кодировать что -то вроде коммутатора для std :: variant?

Сообщение Anonymous »

У меня есть некоторые var = std :: variant Когда a, b, c - некоторые типы.
Как во время выполнения, я проверю, какой тип var содержит? std :: get (var) Я получаю исключение. Итак, я подумал об этом решении: < /p>

Код: Выделить всё

try {
std::variant(var);
// Do something
} catch(const std::bad_variant_access&) {
try {
std::variant(var);
// Do something else
} catch(const std::bad_variant_access&) {
try {
std::variant(var);
// Another else
} catch (const std::bad_variant_access&) {
// std::monostate
}
}
}
< /code>
Но это так сложно и уродливо! Есть более простой способ проверить, какой тип std :: variant 
содержит?

Подробнее здесь: https://stackoverflow.com/questions/634 ... stdvariant

Вернуться в «C++»