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. 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). Regards, Frank
