OSDN Git Service

2007-03-09 Douglas Gregor <doug.gregor@gmail.com>
authordgregor <dgregor@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 10 Mar 2007 02:04:13 +0000 (02:04 +0000)
committerdgregor <dgregor@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 10 Mar 2007 02:04:13 +0000 (02:04 +0000)
commitf1888d9b3d69c19c53ea18d584b2da3711b0b895
tree30690e87aea8f9da57368712a0ee3c2834912e78
parent40685b12b29472bb0e76cf5d1f78c936a4dc3d1b
2007-03-09  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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122790 138bc75d-0d04-0410-961f-82ee72b054a4
12 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/include/Makefile.am
libstdc++-v3/include/Makefile.in
libstdc++-v3/include/tr1/bind_iterate.h [deleted file]
libstdc++-v3/include/tr1/bind_repeat.h [deleted file]
libstdc++-v3/include/tr1/functional
libstdc++-v3/include/tr1/functional_iterate.h [deleted file]
libstdc++-v3/include/tr1/mu_iterate.h [deleted file]
libstdc++-v3/include/tr1/ref_wrap_iterate.h [deleted file]
libstdc++-v3/include/tr1/repeat.h [deleted file]
libstdc++-v3/include/tr1/tuple
libstdc++-v3/include/tr1/tuple_iterate.h [deleted file]