Bison supports two different means to handle semantic values in C++. One is alike the C interface, and relies on unions (see C++ Unions). As C++ practitioners know, unions are inconvenient in C++, therefore another approach is provided, based on variants (see C++ Variants).
|• C++ Unions:||Semantic values cannot be objects|
|• C++ Variants:||Using objects as semantic values|