Boost logo

Boost :

From: Daryle Walker (darylew_at_[hidden])
Date: 2001-06-07 13:10:16


on 6/6/01 8:24 PM, Aleksey Gurtovoy at alexy_at_[hidden] wrote:

> David Abrahams wrote:
>> I have moved the boost build system to the "build-development" branch. I have
>> also integrated Daryle's latest dlw_oprs submission into the operators
>> library.
>
> I should have catched this early, but.. due to default 'void' template
> parameters 'output_iterator_helper' fails to compile on MSVC:
>
> template <class T,
> class V = void,
> class D = void,
> class P = void,
> class R = void>
> struct output_iterator_helper
> : incrementable<T
> , boost::iterator<std::output_iterator_tag, V, D, P, R > >
> {};
>
> MSVC problem with 'void' as default type template parameter is an old one; one
> possible workaround is to use 'void*' instead of 'void' if the latter is just
> a placeholder for an unsignificant parameter. It's not exactly the case here,
> as the standard _requires_ 'difference_type' and 'value_type' of output
> iterators to have 'void' type (24.3.1 [lib.iterator.traits]); still, I haven't
> yet encountered a case when having output iterator value_type == void* instead
> of plain void would make any difference. Actually, on the second thought, if
> those _are_ the requirements, probably 'output_iterator_helper' definition
> should look like this anyway:
>
> template <class T>
> struct output_iterator_helper
> : incrementable<T
> , boost::iterator<std::output_iterator_tag, void, void, void, void > >
> {};
>
> I am not sure that "void value_type" requirement is a reasonable one, though.
> After reading
> http://groups.google.com/groups?as_q=output_iterator&as_uauthors=James%20Kuype
> r, it seems to me that it may be a defect as well. Thoughts?

Shouldn't we keep the decision as defaulted template arguments, so the user
can override the arguments if necessary?

-- 
Daryle Walker
Mac, Internet, and Video Game Junkie
darylew AT mac DOT com

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