2014-01-07 4 views
1

В последнее время я изучаю C, и я натолкнулся на концепцию Союза. Мне нравится, потому что он может использоваться для представления любого типа данных. Конечно, это полезно только для некоторых редких и особых обстоятельств. В C++ все делается с помощью классов. Конечно, аналогичные функции, такие как Union, могут быть реализованы с использованием классов. Так что я хотел знать, поддерживает ли C++ эквивалент Союза, так что я не изобретаю колесо повторно.C++ эквивалент Союза в C?

+4

Союзы также существуют в C++. –

+0

C++ имеет союзы ... меньше троллинга bitte. – ScarletAmaranth

+1

почти все, что C имеет C++. – yngccc

ответ

5

Возможно, вы захотите Boost.Variant.

C++ имеет union как в C, а потому, что union не отслеживает, какой тип хранится в нем, он не сможет выполнить правильный деструктор, если он используется с нетривиальными типами. Полученные в результате ограничения на использование union в C++ делают его весьма не общим.

+0

ha, никогда не думал о Boost.Variant как своего рода тип объединения, +1 для dem POVs! – ScarletAmaranth