Subject: Re: [boost] [spirit] Support for one-pass iterators?
From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2009-10-19 10:30:48
Stewart, Robert wrote:
> Christian Schladetsch wrote:
>> On Tue, Oct 20, 2009 at 3:06 AM, Andrey Semashev
>>> Christian Schladetsch wrote:
>>>> Sure, but this is basic C++. Before the ctor to grammar(...) is
>>>> invoked, the arguments to it have been evaluated. This requires
>>>> construction of its arguments.
>>> That is not true. The base class constructor is called _before_
>>> any members are constructed. Try it yourself.
>> I am not sure what you are referring to. Before the C++ compiler
>> passes a reference to something, it has constructed it. The example
>> you gave was of a ctor taking a reference. Before that ctor is
>> executed, I will personally guarantee that it and all it's base
>> classes have been constructed.
> You can pass a reference to a data member to a base class constructor
> in a derivate's initializer list. If the base class constructor
> tries to use the reference, it will result in undefined behavior.
> (I'm not commenting on the supposed Spirit problem suggested by the
That is exactly the case suggested by the Spirit2 docs.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk