17 Commits

Author SHA1 Message Date
Paolo Carlini
77633f4cd0 re PR libstdc++/24799 (std::tr1::hash missing inheritance)
2005-11-11  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/24799
	* include/tr1/functional (hash): Inherit from std::unary_function.
	* testsuite/tr1/6_containers/unordered/hash/24799.cc: New.

	PR libstdc++/24805
	* include/tr1/boost_shared_ptr.h (swap(shared_ptr<>&, shared_ptr<>&),
	swap(weak_ptr<>&, weak_ptr<>&)): Move inside namespace tr1.
	* testsuite/tr1/2_general_utilities/memory/shared_ptr/modifiers/
	24805.cc: New.

	PR libstdc++/24809
	* include/tr1/type_traits (__is_polymorhpic_helper): Adjust destructor.
	* testsuite/tr1/4_metaprogramming/type_properties/is_polymorphic/
	24809.cc: New.

From-SVN: r106796
2005-11-11 20:10:20 +00:00
Paolo Carlini
48c410a254 functional: Add missing #pragma GCC system_header.
2005-10-15  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/functional: Add missing #pragma GCC system_header.

From-SVN: r105444
2005-10-15 19:46:58 +00:00
Chris Jefferson
2bd8e92c33 re PR libstdc++/23978 (tr1::tie doesn't work with std::pair)
2005-09-29  Chris Jefferson <chris@bubblescope.net>

	PR libstdc++/23978
	* include/tr1/functional (ref, cref): Make inline.
	* include/tr1/tuple_iterate.h (tuple): Add operator=(std::pair).
	(tie): Correct formatting.
	(make_tuple): Make inline.
	* testsuite/tr1/6_containers/tuple/creation_functions/23978.cc: New.

From-SVN: r104784
2005-09-29 17:42:42 +00:00
Kelley Cook
83f517994d All files: Update FSF address.
2005-08-17  Kelley Cook  <kcook@gcc.gnu.org>

	* All files: Update FSF address.

From-SVN: r103192
2005-08-17 02:28:44 +00:00
Paolo Carlini
dbd160bff8 PR libstdc++/21193 (float, double, long double)
2005-07-14  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/21193 (float, double, long double)
	* include/tr1/functional (hash<float>, hash<double>):
	Reimplement exploiting the Fnv_hash<>::hash helper.
	(hash<long double>): Reimplement using frexp (in this
	case, due to random padding bits, the former approach
	is not generally viable).

From-SVN: r102043
2005-07-15 00:05:44 +00:00
Paolo Carlini
5a298377cf PR libstdc++/21193 (string & wstring)
2005-07-13  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/21193 (string & wstring)
	* include/tr1/functional (hash<string>, hash<wstring>):
	Reimplement using the FNV hash.

	* include/tr1/functional: Trivial formatting fixes.

From-SVN: r101964
2005-07-13 10:47:40 +00:00
Douglas Gregor
ca6ca8fa9c functional (_Maybe_wrap_member_pointer): Wrap up member pointers in _Mem_fn but let other function objects pass through...
2005-04-01  Douglas Gregor  <doug.gregor@gmail.com>

	* include/tr1/functional (_Maybe_wrap_member_pointer): Wrap up
	member pointers in _Mem_fn but let other function objects pass
	through unchanged.
	* include/tr1/functional_iterator (bind): Reduce number of bind()
	overloads to two to eliminate ambiguities. Use
	_Maybe_wrap_member_pointer to handle member pointers gracefully.

From-SVN: r97428
2005-04-02 02:02:29 +00:00
Doug Gregor
59cffcf69a [multiple changes]
2005-03-31  Chris Jefferson  <chris@bubblescope.net>

        * include/tr1/tuple: Support iteration via tuple_iterate.h.
        * include/tr1/tuple_iterate.h: Iteration file for tuple.

2005-03-31  Douglas Gregor  <doug.gregor@gmail.com>

        * include/Makefile.am (tr1_headers): Add bind and mu repetition
        headers and reference_wrapper<> forwarding header.
        * include/Makefile.in: Regenerate.
        * include/tr1/bind_iterate.h: Implementation of function call
        operators for the function object returned from tr1::bind().
        * include/tr1/bind_repeat.h: Bind-specific repetition header,
        akin to include/tr1/repeat.h.
        * include/tr1/functional (_Mem_fn): Bug fix: declare result
member
        template for use with result_of.
        (is_bind_expression): New.
        (is_placeholder): New.
        (_Placeholder): New. Placeholder type for bind.
        (_Mu): New. Implementation detail of bind.
        (_Bind, _Bind_result): New. Function objects returned by bind.
        (_GLIBCXX_JOIN): New. Required to create bind placeholders.
        * include/tr1/functional_iterate.h (_Bind, _Bind_result, bind):
        New. Implementation of tr1::bind.
        * include/tr1/mu_iterate.h (_Mu): result template and operator()
        for the _Mu helper to bind.
        * include/tr1/ref_fwd.h (reference_wrapper): Forward declaration
        used by tuple header.
        (ref): Ditto.
        (cref): Ditto.
        * include/tr1/repeat.h: Add bind-specific repetition macros.
        * include/tr1/tuple: Use reference_wrapper forwarding header for
        initial definitions, then include <tr1/functional> at the end, to
        make the circular dependencies work.
        (tie): Support zero-argument tie() function.
        * testsuite/tr1/3_function_objects/bind/all_bound.cc: New test of
        bind() functionality with parameters bound.
        * testsuite/tr1/3_function_objects/bind/nested.cc: New test of
        nested bind() expressions.
        * testsuite/tr1/3_function_objects/bind/placeholders.cc: New test
        of bind() placeholders.
        * testsuite/tr1/3_function_objects/bind/ref.cc: New test of bind()
        with arguments bound via reference_wrapper<>.
        * scripts/gen_includers.pl: Generate the repetitive part of
	include/tr1/repeat.h.
	* scripts/gen_bind_includers.pl: Generate the repetitive part of
	include/tr1/bind_repeat.h.

From-SVN: r97361
2005-04-01 03:35:59 +00:00
Benjamin Kosnik
2e8f8105a6 functional: Convert relative path.
2005-03-03  Benjamin Kosnik  <bkoz@redhat.com>

	* include/tr1/functional: Convert relative path.

	* docs/doxygen/user.cfg.in: Add tr1 includes.

From-SVN: r95838
2005-03-03 17:45:44 +00:00
Douglas Gregor
3c2350009b functional (_Has_result_type): Cleanup.
2005-03-02  Douglas Gregor  <doug.gregor@gmail.com>

        * include/tr1/functional (_Has_result_type): Cleanup.
        (_Result_of_impl): Handle member data pointers correctly.
        (reference_wrapper): Support invocation.
        Move repetition code into new file include/tr1/repeat.h.
        * include/tr1/functional_iterate.h (reference_wrapper): Support
        invocation.  Cleanup long lines.
        * include/tr1/ref_wrap_iterate.h (reference_wrapper): Declare
        invocation operators.
        * include/tr1/repeat.h: Code repetition header.
        * include/Makefile.am: Add ref_wrap_iterate.h, repeat.h
        * include/Makefile.in: Add ref_wrap_iterate.h, repeat.h
        * testsuite/tr1/3_function_objects/reference_wrapper/invoke.cc:
        New test of reference_wrapper invocation.
        * testsuite/tr1/3_function_objects/reference_wrapper/typedefs.cc:
        New test of reference_wrapper typedefs and base classes.
        * testsuite/tr1/3_function_objects/result_of.cc: Trivial cleanup
        (e-mail address).

2005-03-02  Douglas Gregor  <doug.gregor@gmail.com>

        * include/tr1/function (result_of): New class template.
        * include/tr1/functional/iterator.h: Implementation of TR1
        result_of.
        * testsuite/tr1/3_function_objects/result_of.cc: New test

From-SVN: r95778
2005-03-02 12:56:28 +00:00
Paolo Carlini
d962e37d43 functional (mem_fn): Avoid _T, badname on Darwin.
2005-02-24  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/functional (mem_fn): Avoid _T, badname on
	Darwin.

From-SVN: r95492
2005-02-24 09:01:52 +00:00
Douglas Gregor
0179f2c632 TR1 mem_fn and function support
From-SVN: r95486
2005-02-24 01:16:08 +00:00
Paolo Carlini
909a9d44ff functional: Fix License to GPL with exception.
2005-02-22  Paolo Carlini  <pcarlini@suse.de>

	* include/tr1/functional: Fix License to GPL with exception.
	* include/tr1/hashtable: Likewise.
	* include/tr1/tuple: Likewise.
	* include/tr1/type_traits: Likewise.
	* include/tr1/type_traits_fwd.h: Likewise.
	* include/tr1/unordered_map: Likewise.
	* include/tr1/unordered_set: Likewise.
	* include/tr1/utility: Likewise.

From-SVN: r95398
2005-02-22 17:07:07 +00:00
Matt Austern
6bbd10c784 functional (tr1_hashtable_define_trivial_hash): Make hash<T>::operator() a const member function for T a fundamental type
* include/tr1/functional (tr1_hashtable_define_trivial_hash): Make
hash<T>::operator() a const member function for T a fundamental type
* include/tr1/hashtable (extract1st::operator()): Declare const.
(hash_code_base): Declare all member functions const
(hashtable::find): fix call to this->bucket_count()
(hashtable::count): Likewise.
(hashtable::equal_range): m_incr_bucket applies to iterator, not node.
* testsuite/tr1/6_containers/unordered/find/set1.cc: New test.
* testsuite/tr1/6_containers/unordered/find/map1.cc: New test.
* testsuite/tr1/6_containers/unordered/find/multimap1.cc: New test.
* testsuite/tr1/6_containers/unordered/find/multiset1.cc: New test.

From-SVN: r95293
2005-02-19 23:57:23 +00:00
Hans-Peter Nilsson
967f056dfd re PR libstdc++/20071 (newlib target testsuite regressions: libstdc++: tr1/6_containers/tuple)
PR libstdc++/20071
	* include/tr1/functional (hash<std::wstring>): Wrap in #ifdef
	_GLIBCXX_USE_WCHAR_T.

From-SVN: r95279
2005-02-19 15:33:59 +00:00
Matt Austern
180ecd6aa2 functional (hash): New function object.
* include/tr1/functional (hash): New function object.
        * include/tr1/hashtable: New file.
        * include/tr1/unordered_set: New file.
        * include/tr1/unordered_map: New file.
        * include/Makefile.am: Add three new TR1 headers.
        * include/Makefile.in: Likewise.
        * testsuite/tr1/6_containers/unordered/insert/array_syntax.cc: New test.
        * testsuite/tr1/6_containers/unordered/insert/map_single.cc: New test.
        * testsuite/tr1/6_containers/unordered/insert/multimap_single.cc: New test.
        * testsuite/tr1/6_containers/unordered/insert/multiset_single.cc: New test.
        * testsuite/tr1/6_containers/unordered/insert/set_single.cc: New test.
        * testsuite/tr1/6_containers/unordered/instantiate/hash.cc: New test.
        * testsuite/tr1/6_containers/unordered/instantiate/map.cc: New test.
        * testsuite/tr1/6_containers/unordered/instantiate/multimap.cc: New test.
        * testsuite/tr1/6_containers/unordered/instantiate/multiset.cc: New test.
        * testsuite/tr1/6_containers/unordered/instantiate/set.cc: New test.

From-SVN: r95219
2005-02-18 07:50:08 +00:00
Benjamin Kosnik
f2ede5d621 [multiple changes]
2004-11-24  Benjamin Kosnik  <bkoz@redhat.com>

	* include/Makefile.am (tr1_headers): Add utility, functional.
	* include/Makefile.in: Regenerate.

2004-11-24  Chris Jefferson  <chris@bubblescope.net>

	* include/tr1/tuple(operator!=): Change operator
	definition to match (draft) technical report.
	(operator>): Same.
	(operator<=): Same.
	(operator>=): Same.
	(ref): Move to include/tr1/functional.
	(cref): Same.
	(tuple_size<pair>): Move to include/tr1/utility.
	(tuple_element<,pair>): Same.
	* include/tr1/functional: New.
	* include/tr1/utility: New.
	* testsuite/tr1/6_container/utility/pair.cc: New.

From-SVN: r91171
2004-11-24 16:04:47 +00:00