Hi Valentin! > Le 16 mars 2019 à 10:46, Valentin Tolmer <valentin.tol...@gmail.com> 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!