|
Boost : |
Subject: Re: [boost] [spirit] Support for one-pass iterators?
From: Christian Schladetsch (christian.schladetsch_at_[hidden])
Date: 2009-10-19 10:19:38
I'll bet that you are calling a virtual method from a base class's
initialiser list, and blaming it on Boost.Spirit...
On Tue, Oct 20, 2009 at 3:12 AM, Christian Schladetsch <
christian.schladetsch_at_[hidden]> wrote:
> You can, of course, make a situation where you can pass a reference to a
> malformed instance.
>
>
> On Tue, Oct 20, 2009 at 3:11 AM, Christian Schladetsch <
> christian.schladetsch_at_[hidden]> wrote:
>
>>
>>
>> On Tue, Oct 20, 2009 at 3:06 AM, Andrey Semashev <
>> andrey.semashev_at_[hidden]> wrote:
>>
>>> 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 are working under a delusion that should be corrected very soon.
>>
>> Regards,
>> Christian
>>
>>
>>
>
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk