> On 15 Mar 2018, at 07:41, Frank Heckenbach <f.heckenb...@fh-soft.de> wrote:
> 
> Hans Åberg wrote:
> 
>>>> It could be deliberate to avoid them being exported. But C++ now
>>>> has namespaces, which cann be used to avoid name conflicts.
>>> 
>>> It's all in a namespace anyway (yy by default) and we're only
>>> talking about a constructor, so no name conflicts. I think it was a
>>> simple mistake.
>> 
>> It would seem reasonable that the C++ parser has fewer options,
>> with say always headers for example. The stack, location and
>> position headers might be in the parser header, so there is no
>> conflict when using multiple parsers.
> 
> I don't particularly like those extra headers (see my mail in the
> other thread "Generated headers"), but for now I don't want to
> change more than necessary.

They conflict if using multiple parsers with different namespaces. 

> But I generally agree that fewer options are necessary due to more
> features of C++. In particular, in my C++17 version, I had to
> disable "%printer" for variants and "%destructor" (with and without
> variants) in favour of standard C++ overloading. This was also a
> consequence of the problems with type overrides (e.g. in mid-rule
> actions).

Those were written for C. If one can always use C++ features, that is better.



Reply via email to