Boost logo

Boost :

From: Cory Nelson (phrosty_at_[hidden])
Date: 2007-09-27 09:12:27


On 9/27/07, Ion Gaztañaga <igaztanaga_at_[hidden]> wrote:
> Cory Nelson wrote:
> > On 9/27/07, Ion Gaztañaga <igaztanaga_at_[hidden]> wrote:
> >> P.S.: If users prefer the old syntax, we can go back again to the old
> >> way. Just be polite ;-)
> >
> > How does this affect compile time? Considering these things will
> > probably only be typed once anyway for a typedef, and that most users
> > will only care about a few common args, is an increase in compile time
> > worth it?
>
> That's something I expect users to judge. The new version also has some
> helper metafunctions that reduce compilation times and symbol length:
>
> http://igaztanaga.drivehq.com/intrusive/intrusive/obtaining_same_type_reducing_space.html
>
> > I'm straddling the line of calling this "overkill in the name of
> > cleverness", but I will have to try it out and see how it runs.
>
> When the interface change was discussed there was no objection except my
> worries about compilation times/symbol length. I've spent a lot of time
> trying to minimize compilation times with the new approach but
> obviously, they are higher than before. I repeat: if users prefer the
> old syntax, I'm open to rescue the old syntax adding the features added
> in the last version.
>
> Even if I preferred the old way because of compilation times I
> appreciate the new syntax. Boost.Intrusive users will make the final
> choice, so I expect your comments and suggestions.

After using it now, I can say I could live with the new, but much
prefer the old. Here are some thoughts:

Compile time increases with VC++ have proven trivial in the grand
scheme of things, even when specifying several options.

The common use cases are still simple.

In spots where "using namespace boost::intrusive" is impossible or
inappropriate, you are in for a lot of typing if you want to specify
some options. Typedefs lower the amount of annoyance, but it's still
something you would not have to worry about with traditional syntax.

You get extra verbosity, but I think a better place for this would be
in comments where we can use much more descriptive natural language,
won't affect compile time, and won't have to redundantly specify the
namespace so much.

The make_* stuff is usable but feels like what it is: a hack to work
with random order options.

-- 
Cory Nelson

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk