From Jason Turner

[set.overview]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp8udp0oom/{from.md → to.md} +23 -8
tmp/tmp8udp0oom/{from.md → to.md} RENAMED
@@ -38,28 +38,32 @@ namespace std {
38
  typedef typename allocator_traits<Allocator>::const_pointer const_pointer;
39
  typedef std::reverse_iterator<iterator> reverse_iterator;
40
  typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
41
 
42
  // [set.cons], construct/copy/destroy:
43
- explicit set(const Compare& comp = Compare(),
 
44
  const Allocator& = Allocator());
45
  template <class InputIterator>
46
  set(InputIterator first, InputIterator last,
47
  const Compare& comp = Compare(), const Allocator& = Allocator());
48
- set(const set<Key,Compare,Allocator>& x);
49
- set(set<Key,Compare,Allocator>&& x);
50
  explicit set(const Allocator&);
51
  set(const set&, const Allocator&);
52
  set(set&&, const Allocator&);
53
  set(initializer_list<value_type>,
54
  const Compare& = Compare(),
55
  const Allocator& = Allocator());
 
 
 
 
 
56
  ~set();
57
- set<Key,Compare,Allocator>& operator=
58
- (const set<Key,Compare,Allocator>& x);
59
- set<Key,Compare,Allocator>& operator=
60
- (set<Key,Compare,Allocator>&& x);
61
  set& operator=(initializer_list<value_type>);
62
  allocator_type get_allocator() const noexcept;
63
 
64
  // iterators:
65
  iterator begin() noexcept;
@@ -94,31 +98,42 @@ namespace std {
94
  void insert(initializer_list<value_type>);
95
 
96
  iterator erase(const_iterator position);
97
  size_type erase(const key_type& x);
98
  iterator erase(const_iterator first, const_iterator last);
99
- void swap(set<Key,Compare,Allocator>&);
100
  void clear() noexcept;
101
 
102
  // observers:
103
  key_compare key_comp() const;
104
  value_compare value_comp() const;
105
 
106
  // set operations:
107
  iterator find(const key_type& x);
108
  const_iterator find(const key_type& x) const;
 
 
109
 
110
  size_type count(const key_type& x) const;
 
111
 
112
  iterator lower_bound(const key_type& x);
113
  const_iterator lower_bound(const key_type& x) const;
 
 
114
 
115
  iterator upper_bound(const key_type& x);
116
  const_iterator upper_bound(const key_type& x) const;
 
 
117
 
118
  pair<iterator,iterator> equal_range(const key_type& x);
119
  pair<const_iterator,const_iterator> equal_range(const key_type& x) const;
 
 
 
 
120
  };
121
 
122
  template <class Key, class Compare, class Allocator>
123
  bool operator==(const set<Key,Compare,Allocator>& x,
124
  const set<Key,Compare,Allocator>& y);
 
38
  typedef typename allocator_traits<Allocator>::const_pointer const_pointer;
39
  typedef std::reverse_iterator<iterator> reverse_iterator;
40
  typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
41
 
42
  // [set.cons], construct/copy/destroy:
43
+ set() : set(Compare()) { }
44
+ explicit set(const Compare& comp,
45
  const Allocator& = Allocator());
46
  template <class InputIterator>
47
  set(InputIterator first, InputIterator last,
48
  const Compare& comp = Compare(), const Allocator& = Allocator());
49
+ set(const set& x);
50
+ set(set&& x);
51
  explicit set(const Allocator&);
52
  set(const set&, const Allocator&);
53
  set(set&&, const Allocator&);
54
  set(initializer_list<value_type>,
55
  const Compare& = Compare(),
56
  const Allocator& = Allocator());
57
+ template <class InputIterator>
58
+ set(InputIterator first, InputIterator last, const Allocator& a)
59
+ : set(first, last, Compare(), a) { }
60
+ set(initializer_list<value_type> il, const Allocator& a)
61
+ : set(il, Compare(), a) { }
62
  ~set();
63
+ set& operator=(const set& x);
64
+ set& operator=(set&& x);
 
 
65
  set& operator=(initializer_list<value_type>);
66
  allocator_type get_allocator() const noexcept;
67
 
68
  // iterators:
69
  iterator begin() noexcept;
 
98
  void insert(initializer_list<value_type>);
99
 
100
  iterator erase(const_iterator position);
101
  size_type erase(const key_type& x);
102
  iterator erase(const_iterator first, const_iterator last);
103
+ void swap(set&);
104
  void clear() noexcept;
105
 
106
  // observers:
107
  key_compare key_comp() const;
108
  value_compare value_comp() const;
109
 
110
  // set operations:
111
  iterator find(const key_type& x);
112
  const_iterator find(const key_type& x) const;
113
+ template <class K> iterator find(const K& x);
114
+ template <class K> const_iterator find(const K& x) const;
115
 
116
  size_type count(const key_type& x) const;
117
+ template <class K> size_type count(const K& x) const;
118
 
119
  iterator lower_bound(const key_type& x);
120
  const_iterator lower_bound(const key_type& x) const;
121
+ template <class K> iterator lower_bound(const K& x);
122
+ template <class K> const_iterator lower_bound(const K& x) const;
123
 
124
  iterator upper_bound(const key_type& x);
125
  const_iterator upper_bound(const key_type& x) const;
126
+ template <class K> iterator upper_bound(const K& x);
127
+ template <class K> const_iterator upper_bound(const K& x) const;
128
 
129
  pair<iterator,iterator> equal_range(const key_type& x);
130
  pair<const_iterator,const_iterator> equal_range(const key_type& x) const;
131
+ template <class K>
132
+ pair<iterator, iterator> equal_range(const K& x);
133
+ template <class K>
134
+ pair<const_iterator, const_iterator> equal_range(const K& x) const;
135
  };
136
 
137
  template <class Key, class Compare, class Allocator>
138
  bool operator==(const set<Key,Compare,Allocator>& x,
139
  const set<Key,Compare,Allocator>& y);