Предположим, например, что вы хотите реализовать электронную таблицу на С++. Ячейкой может быть строка, число или, возможно, пустое. Игнорируйте другие случаи, например, формулу.
В Haskell вы можете сделать что-то вроде:
data Cell = CellStr String | CellDbl Double | None
Что считается текущей "лучшей практикой" для этого в С++? Использовать объединение в структуре с индикатором типа или что-то еще?