Subject: Re: [boost] [spirit] Support for one-pass iterators?
From: Christian Schladetsch (christian.schladetsch_at_[hidden])
Date: 2009-10-19 11:16:21


   grammar(
       start_type const& start
     , std::string const& name_ = "unnamed-grammar")
=> : proto::extends<terminal, base_type>(terminal::make(

start.alias()))
   , name_(name_)
   {}

Here "start" is a reference to a not yet constructed object.

No, it's not. "start" is a reference to a well-formed object - or at least
to an object that is defined in user-space as well formed.

My argument is based on this premise, and this alone: 'start' is fully
created before it it used by the grammar.

If this is not true, please speak to Stroustrup. If it is true, then I am
right and I take no pleasure from it. I don't think you're unable to grasp
what I am saying, and I am sure you think there is a problem. But I just
don't see it. I don't care about the details: the fact is that if you are
taking a reference then that object has been well formed or you are doing
something silly.

Regards,
Christian