Предположим, например, что вы хотите реализовать электронную таблицу Cell на C++. Ячейкой может быть строка, число или, возможно, пустое. Игнорируйте другие случаи, например, формулу.Что такое идиоматический современный C++ для алгебраических типов данных?
В Haskell, вы могли бы сделать что-то вроде:
data Cell = CellStr String | CellDbl Double | None
Что считается в настоящее время «наилучшей практики» для делать это в C++? Использовать объединение в структуре с индикатором типа или что-то еще?
Возможна одна опция ['boost :: variant'] (http://www.boost.org/doc/libs/1_60_0/doc/html/variant.html). – Pixelchemist
или реализовать себе конкретный тип варианта с объединением –
@Pixelchemist сделать это ответ, и я сделаю +1 его. –