[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: syntax_error constructor is declared inline

From: Hans Åberg
Subject: Re: syntax_error constructor is declared inline
Date: Thu, 15 Mar 2018 10:13:33 +0100

> On 15 Mar 2018, at 07:41, Frank Heckenbach <address@hidden> 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

[Prev in Thread] Current Thread [Next in Thread]