Boost logo

Boost :

From: Daryle Walker (darylew_at_[hidden])
Date: 2000-11-07 00:12:54


on 11/5/00 11:30 AM, David Abrahams at abrahams_at_[hidden] wrote:

[SNIP]
> Carefully looking over the code with ediff shows that this fragment has been
> dropped. Was that intentional?
>
> #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
> template <class T, class I, class R, class B>
> struct is_chained_base< ::boost::indexable<T, I, R, B> > {
> typedef ::boost::detail::true_t operator_template_type;
> };
> #endif

There were already chaining macros for one- and two-argument templates. I
added a template with four arguments. Instead of adding a custom
chained-base template like what was done for indexable, I added a macro
family for four-argument templates instead. Since I did that, I might as
well do a family for three-argument templates too, and so I used that family
for indexable, making the above fragment unneeded.

[SNIP]

> test_iter has been changed to take a new P type parameter, and stores one
> internally, but still takes a T* value parameter to its constructor. Is this
> intentional?

I think I did it because I needed a default constructor for the iterator
type. (I declare an uninitialized iterator as a common index variable.)
The default is the NULL pointer, but I'm not sure that an arbitrary P can
properly accept the null-pointer constant. I made the input parameter a T*
so the NULL value is guaranteed to be properly accepted, provided that P can
be constructed from a converted T*.

[SNIP]

> I believe you have misspelled "archetype" as "archtype" repeatedly.

Whoops! Is the middle _e_ silent? (Is the word still pronounced
"arch-type," like I thought, or is it "arch-e-type?")


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