re PR libstdc++/83709 (Inserting duplicates into an unordered associative containers...
[gcc.git] / libstdc++-v3 / ChangeLog
1 2018-01-09 François Dumont <fdumont@gcc.gnu.org>
2
3 PR libstdc++/83709
4 * include/bits/hashtable_policy.h
5 (__distance_fwd(_Iterator, _Iterator, input_iterator_tag)): Return 1 if
6 __first != __last.
7 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, true_type)): New.
8 (_Insert_base::_M_insert_range(_Ite, _Ite, _NodeGetter, false_type)):
9 Add false_type parameter.
10 (_Insert_base::insert): Adapt.
11 * include/bits/hashtable.h (_Hashtable::operator=(initializzr_list<>)):
12 Adapt.
13 (_Hashtable::_M_insert(_Arg&&, const _NodeGen&, true_type, size_t)):
14 Add __n_elt parameter, defaulted to 1.
15 (_Hashtable::_M_insert_unique_node): Likewise. Use it to call rehash
16 policy _M_need_rehash.
17 (_Hashtable::_M_merge_unique): Pass target number of elements to add to
18 produce only 1 rehash if necessary.
19 * testsuite/23_containers/unordered_map/insert/83709.cc: New.
20 * testsuite/23_containers/unordered_set/insert/83709.cc: New.
21
22 2018-01-09 Jonathan Wakely <jwakely@redhat.com>
23
24 PR libstdc++/59253 (partial)
25 * python/libstdcxx/v6/printers.py (SmartPtrIterator): Common iterator
26 type for pointer stored by shared_ptr, weak_ptr and unique_ptr.
27 (SharedPointerPrinter, UniquePointerPrinter): Treat stored values as
28 children.
29 * testsuite/libstdc++-prettyprinters/cxx11.cc: Update expected output
30 of unique_ptr printer.
31 * testsuite/libstdc++-prettyprinters/shared_ptr.cc: Update expected
32 output of shared_ptr printer.
33
34 2018-01-05 Jonathan Wakely <jwakely@redhat.com>
35
36 PR libstdc++/83626
37 * src/filesystem/ops.cc (remove(const path&, error_code&)): Remove
38 unnecessary symlink_status call.
39 (remove_all(const path&, error_code&)): Use filesystem::remove.
40 * src/filesystem/std-ops.cc: Likewise.
41
42 PR libstdc++/83279
43 * src/filesystem/std-ops.cc (do_copy_file): Use non-null offset with
44 sendfile.
45
46 PR libstdc++/83626
47 * src/filesystem/ops.cc (remove(const path&, error_code&)): Do not
48 report an error for ENOENT.
49 (remove_all(const path&)): Fix type of result variable.
50 (remove_all(const path&, error_code&)): Use non-throwing increment
51 for directory iterator. Call POSIX remove directly to avoid redundant
52 calls to symlink_status. Do not report errors for ENOENT.
53 * src/filesystem/std-ops.cc: Likewise.
54 * testsuite/27_io/filesystem/operations/remove_all.cc: Test throwing
55 overload.
56 * testsuite/experimental/filesystem/operations/remove_all.cc:
57 Likewise.
58
59 2018-01-04 Jonathan Wakely <jwakely@redhat.com>
60
61 PR libstdc++/83626
62 * src/filesystem/ops.cc (remove(const path&, error_code&))): Remove
63 redundant call to ec.clear().
64 (remove_all(const path&, error_code&))): Do not return an error for
65 non-existent paths.
66 * src/filesystem/std-ops.cc: Likewise.
67 * testsuite/27_io/filesystem/operations/remove.cc: New test.
68 * testsuite/27_io/filesystem/operations/remove_all.cc: Fix expected
69 results for non-existent paths.
70 * testsuite/experimental/filesystem/operations/remove.cc: New test.
71 * testsuite/experimental/filesystem/operations/remove_all.cc: Fix
72 expected results for non-existent paths.
73
74 * include/bits/fs_ops.h (exists(const path&, error_code&))): Only
75 check status_known once.
76 * include/experimental/bits/fs_ops.h: Likewise.
77
78 PR libstdc++/83607
79 * include/std/functional (__is_byte_like): New trait.
80 (__is_std_equal_to): Remove.
81 (__boyer_moore_base_t): Use __is_byte_like instead of
82 __is_std_equal_to.
83 * include/experimental/functional (__is_std_equal_to): Remove.
84 (__boyer_moore_base_t): Use __is_byte_like instead of
85 __is_std_equal_to.
86 * testsuite/20_util/function_objects/83607.cc: New test.
87
88 2018-01-03 Ville Voutilainen <ville.voutilainen@gmail.com>
89
90 Protect optional's deduction guide with the feature macro
91 * include/std/optional: Use the feature macro.
92
93 2018-01-03 Jakub Jelinek <jakub@redhat.com>
94
95 Update copyright years.
96 \f
97 Copyright (C) 2018 Free Software Foundation, Inc.
98
99 Copying and distribution of this file, with or without modification,
100 are permitted in any medium without royalty provided the copyright
101 notice and this notice are preserved.