bug-bison
[Top][All Lists]
Advanced

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

Re: C++, exception, and memory handling


From: Akim Demaille
Subject: Re: C++, exception, and memory handling
Date: Sat, 16 Mar 2019 13:21:02 +0100

Hi Valentin!

> Le 16 mars 2019 à 10:46, Valentin Tolmer <address@hidden> a écrit :
> 
> Hi Akim,
> 
> Thanks for the answer! I expected something like this, but I wanted to make
> sure.
> 
> What's the policy towards standard features? Things like C++11 and so on:

We target C++98, but support C++11 features (such as move semantics)
conditionally.  You should easily find examples of this looking for
YY_CPLUSPLUS.  (That's also why I prefer using std containers: they
handle the different versions of C++ by themselves.)

The test suite (and the CI) checks different -std=c++XX values to make
sure we behave properly in each case.

See tests/types.at for examples of how to write tests that _require_
C++11 or more (or just grep for things such as std::unique_ptr).

> do we assume 98 if nothing is specified, and guard modern alternatives with
> the m4 flags?

Nope, CPP guards.

> Or can we at least use 11, with things like "nullptr" and so
> on? I'll have to check what's not included in 98, I haven't written in so
> old a standard in a looooong time :)

nullptr/NULL/0 is taken care of with YY_NULLPTR.  See skeletons/c.m4,
b4_null_define.

And again, the CI will help you catch (most) C++ portability issues :)
I suggest that you make a PR against my repo on GitHub, then look for
your PR here:

        https://travis-ci.org/akimd/bison/pull_requests

(Don't worry about push -f on this PR: I will perfectly understand that
the PR is WIP.)

Cheers!


reply via email to

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