On 13 Feb 2012, at 15:09, Akim Demaille wrote:

> * variant
> The point of "variant" is to allow objects (not pointers
> to objects) to be used to type the symbols in the C++
> LR parser.
> 
> So we have, for instance :
> 
>> %token <::std::string> TEXT;
>> %token <int> NUMBER;
>> 
>> list:
>>  /* nothing */ { /* Generates an empty string list */ }
>> | list item     { std::swap ($$, $1); $$.push_back ($2); }
>> ;

C++11 allows unions having members of types with non-trivial 
constructors/destructors, which however, must be called explicitly.

Hans



Reply via email to