[v3] Variadic templates, fourth revision (2/2)

Doug Gregor doug.gregor@gmail.com
Sat Mar 10 04:59: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/gcc-patches/attachments/20070310/6af0409f/attachment.bin>


More information about the Gcc-patches mailing list