[v3] Variadic templates, fourth revision (2/2)
Doug Gregor
doug.gregor@gmail.com
Sat Mar 10 02:07:00 GMT 2007
Updated to deal with the C++0x header bits, re-tested, and committed.
Final patch is attached.
Yippee!
Cheers,
Doug
On 12/8/06, Benjamin Kosnik <bkoz@redhat.com> wrote:
>
> > 2006-12-08 Douglas Gregor <doug.gregor@gmail.com>
> >
> > * include/Makefile.in: Regenerate.
> > * include/tr1/mu_iterate.h: Remove.
> > * include/tr1/tuple (_Tuple_impl): New.
> > (tuple): Make variadic, re-implement as shell over _Tuple_impl.
> > (0-element tuple): Basis case.
> > (2-element tuple): Handle pair methods.
> > (__get_helper): Remove.
> > (tuple_element): Reimplement with variadic templates.
> > (tuple_size): Ditto.
> > (get): Ditto.
> > (operator==): Use variadic templates in the signature.
> > (operator<): Ditto.
> > (operator!=): Ditto.
> > (operator>): Ditto.
> > (operator<=): Ditto.
> > (operator>=): Ditto.
> > (__stripped_tuple_type): Remove; we've inlined its behavior.
> > (make_tuple): Reimplement with variadic templates.
> > (tie): Ditto.
> > * include/tr1/tuple_iterate.h: Remove.
> > * include/tr1/bind_repeat.h: Remove.
> > * include/tr1/ref_wrap_iterate.h: Remove.
> > * include/tr1/bind_iterate.h: Remove.
> > * include/tr1/functional (_Weak_result_type): Add variadic
> > partial specializations.
> > (result_of): Ditto.
> > (__invoke): Reimplement using variadic templates.
> > (reference_wrapper): Reimplement operator() with variadic
> > templates.
> > (_Maybe_unary_or_binary_function): New.
> > (_Mem_fn): Implement for member function pointers using variadic
> > templates.
> > (placeholders): Define 30 placeholders.
> > (_Index_tuple): New.
> > (_Build_index_tuple): New.
> > (_No_tuple_element): New.
> > (_Safe_tuple_element_impl): New.
> > (_Safe_tuple_element): New.
> > (_Mu): Reimplement with variadic templates, use
> > _Safe_tuple_element instead of tuple_element.
> > (_Bind): Reimplement with variadic templates and tuples.
> > (_Bind_result): Ditto.
> > (bind): Reimplement with variadic templates.
> > (_Function_handler): Ditto.
> > (function): Ditto.
> > * include/tr1/functional_iterate.h: Remove.
> > * include/tr1/repeat.h: Remove.
> > * include/Makefile.am: Don't install removed headers.
>
> This is ok.
>
> -benjamin
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: variadic-templates-libstdc++-v3.patch.gz
Type: application/x-gzip
Size: 18064 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/libstdc++/attachments/20070310/6af0409f/attachment.bin>
More information about the Libstdc++
mailing list