Давайте рассмотрим такой объединенный дискриминируемый союз:
struct DiscriminatedUnion
{
union
{
float floatish;
uint32_t integral;
};
enum Discriminator
{
FLOATISH,
INTEGRAL
} discriminator{FLOATISH};
};
Есть ли возможность каким-либо образом получить типы (например, с std::tuple<float,uint32_t>
) такого дискриминационного объединения?Я хотел бы реализовать sth вроде std::visit
для подобных союзов, не заменяя их на std::variant
или не объявляя черты для каждого союза.