Хабр Курсы для всех
РЕКЛАМА
Большая витрина: от крупнейших школ до частных авторов. Сравнивайте по цене, длительности, формату и выбирайте самый подходящий курс!
Далее, суммы типов, кодирующие наличие или отсутствие значения, реализуются в C++ при помощи различных трюков с «невозможными» значениями, такими как пустые строки, отрицательные числа, нулевые указатели и т. д.— Скоро это изменится, см. std::experimental::optional. См также std::experimental::any и
В union нельзя поместить даже std::string, потому что у этого класса есть конструктор копирования.— можно. Надо только будет вручную вызвать placement new перед использованием.
Со-произведения звучит лучше чем копро-изведения
Простые алгебраические типы данных