Как я могу кодировать что -то вроде коммутатора для 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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