Hi Akim, > On 24.12.2018, at 18:40, Akim Demaille <a...@lrde.epita.fr> wrote:
> I just released it. It includes a copy ctor. Great! I can confirm that it fixes all my (current) problems :-) > Well, RVO plays a role here, but I guess the difference is that you had a > local variable, whereas I directly return (r)values. NRVO is harder. Things were simpler back before C++11 - even if the compiler did RVO, the compiler had to flag an error if the copy constructor was declared private. > Why do you want to avoid including the header? What could have we done to > spare you this effort? Nothing, really. The declaration of my lexer is visible from some other modules, and I was trying to limit the amount of code I had to recompile when making many small grammar changes. In my day job, I have to suffer through 5-minute-recompiles for tiny changes, so I guess I just prefer to err on the side of “too much decoupling”. > I have not added the copy-assignment. I'll address this in Bison 3.3 > instead, I think it was ok in 3.0 at all. I agree. Bison 3.0 declared all assignment as private, so allowing assignment is just “luxury” for the future. > Wow, if that was without cheating, congratulations :) Yet I need Google to > answer, although my wife is German... Shame on me. J’ai verifié l’orthographie sur Internet… je n’etais plus sur. Est-ce qu’on appelle ça «tricher» ? Cheers, Wolfgang