forked from kpeeters/tree.hh
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
500 lines (293 loc) · 13.6 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
2020-11-07 Trevor Hickey <[email protected]>
* Release 3.17
* Fix error in move constructor which caused tree
corruption (similar bug from 3.16).
2020-11-07 Kasper Peeters <[email protected]>
* Release 3.16
* Fix error in move assignment operator which caused tree
corruption (thanks to Trevor Hickey for reporting the bug).
2020-10-26 Kasper Peeters <[email protected]>
* Release 3.15
* Convert to allocator_traits for all allocator functions, instead
of calling them directly.
* Make `parent` throw an exception rather than bailing out with an
assert.
2019-09-21 Kasper Peeters <[email protected]>
* Release 3.14
* Add version of `depth` which takes a predicate function to
determine whether a particular level in the tree should increase
the counter or not.
* Add new `distance` function to determine vertical distance
between two nodes (like `depth`, but between two nodes, not
between a node and the top level).
* Fix bug in move_before which would leave the tree in an
inconsistent state.
2019-05-28 Kasper Peeters <[email protected]>
* Release 3.13
* Add missing 'move_in_below' function.
2019-03-18 Kasper Peeters <[email protected]>
* Release 3.11
* Add 'node_in_subtree' function to determine if a node is in a
given subtree.
* Update path logic to cover subtrees and handle out-of-range
errors gracefully.
2019-02-27 Kasper Peeters <[email protected]>
* Release 3.10
* Fix a bug in move assignment operator.
2018-04-25 Kasper Peeters <[email protected]>
* Add logic to generate a path from an itertor and vice versa.
2018-04-23 Kasper Peeters <[email protected]>
* Release 3.8.
* Make fixed-depth iterators start at the first node in a range of
siblings.
2018-01-30 Kasper Peeters <[email protected]>
* Release 3.6.
* Made various members static.
2016-01-23 Kasper Peeters <[email protected]>
* Released 3.4
* Added move semantics version of prepend_child.
2015-07-13 Kasper Peeters <[email protected]>
* Released 3.2
* Move constructor did the wrong thing with empty trees, fixed.
2015-05-06 Kasper Peeters <[email protected]>
* Released 3.1
* Added asserts in 'subtree' in order to warn users about
constructing empty subtrees.
2014-12-25 Kasper Peeters <[email protected]>
* Released 3.0
* Added move constructor and move_out, move_in, move_in_as_nth_child.
2013-09-02 Kasper Peeters <[email protected]>
* Released 2.9
* Added 'pre_order_iterator::next_skip_children()'.
2011-08-23 Kasper Peeters <[email protected]>
* Brown paper bag release 2.81.
2011-08-23 Kasper Peeters <[email protected]>
* Released 2.8
* License updated.
2010-12-24 Kasper Peeters <[email protected]>
* Added a number of asserts to trip when passing invalid iterators
to append_child/prepend_child members.
2010-03-24 Kasper Peeters <[email protected]>
* Released 2.70
* Fixed handling of std::allocator to make it more likely to work
on non-GNU platforms.
2009-12-28 Kasper Peeters <[email protected]>
* Fixed the operator= return type and handled self-assignment
(thanks to Xinlin Cao for the fix).
2009-05-05 Kasper Peeters <[email protected]>
* Released 2.65
* Added skip_children(bool), fixed post-increment/decrement
operators to not refer to 'n' anymore.
2009-04-03 Kasper Peeters <[email protected]>
* Added a sibling member for quick access to the n-th sibling
(thanks to Adam Connell for sending the patch).
2009-03-06 Kasper Peeters <[email protected]>
* Fixed an old bug in compare_nodes (pointed out to me in 2005 but
never fixed properly...)
2008-08-28 Kasper Peeters <[email protected]>
* Released 2.62
* Changed the behaviour of max_depth() so that it returns -1 for
an empty tree, instead of bailing out with an error (strictly
speaking max_depth should be undefined...).
2008-08-26 Kasper Peeters <[email protected]>
* Released 2.61
* Fixed a bug in max_depth() which would fail on trees with more
than one head node (thanks to Marc Noirot for pointing this out).
2008-08-23 Kasper Peeters <[email protected]>
* Released 2.60
* Fixed several problems with fixed_depth iterators: iterating
beyond the top node now disabled and operator-- fixed.
2008-07-25 Kasper Peeters <[email protected]>
* Made 'child()' static.
2008-07-20 Kasper Peeters <[email protected]>
* Released 2.54
* Changed size() members to return size_t instead of unsigned int.
* Changed behaviour of operator++ for leaf_iterator so that it can
be used in situations where new leaves get added during iteration.
2008-06-30 Kasper Peeters <[email protected]>
* Released 2.52
* Made depth member function static so it can be used independent
of an actual tree, and added a version with two iterators to
measure depths relative to a different node.
2008-02-28 Kasper Peeters <[email protected]>
* Released 2.51
* Added a top node to leaf_iterators, so that they can be
instructed to iterate only over the leaves of a given node.
2007-10-19 Kasper Peeters <kasper@pooh>
* Released 2.4.
2007-10-18 Kasper Peeters <kasper@pooh>
* Added max_depth() members.
* Fixed a bug in begin_fixed() which would fail on
A
/ \
B C
/ \
D E
/ \
F G
when asked for the first node at depth 3 from 'A' (since it
failed to go back up the tree from 'D').
2007-08-21 Kasper Peeters <[email protected]>
* Released 2.31.
* Added GPL version 3 licensing as an option.
2007-01-19 Kasper Peeters <kasper@pooh>
* Fixed a bug in "replace" which appeared when trying to replace a
head node (it tried to access the parent).
2006-11-29 Kasper Peeters <[email protected]>
* Release 2.3.
Fixed a bug in number_of_siblings which only counted siblings in
one direction (thanks to Fanzhe Cui for pointing this out).
2006-08-20 Kasper Peeters <kasper@pooh>
* Released 2.2.
* Added operator== and operator!= for fixed_depth_iterator.
2006-08-07 Kasper Peeters <[email protected]>
* Released 2.1.
* Added leaf iterators, code contributed by Peter Wienemann.
* Fixed a bug in is_valid (thanks to Antonio Morillas). 1.131.
2006-07-19 Kasper Peeters <[email protected]>
* Fixed bugs in move_before and move_after which would show up
when the node was already in the right place. 1.130.
2006-03-02 Kasper Peeters <[email protected]>
* Added the "wrap" member function.
2006-03-01 Kasper Peeters <[email protected]>
* Added a simple queue-based breadth-first iterator.
2006-01-31 Kasper Peeters <[email protected]>
* Fixed move_before to work when the target is a sibling_iterator
pointing to the end of a range of siblings.
2005-11-20 Kasper Peeters <[email protected]>
* Added move_after, which for some mysterious reason was
missing. Thanks to Dennis Jones for pointing this out.
* Fixed a bug in operator++ for post_order iterators
(skip_children could remain set if no next sibling present).
Thanks to Ohad for pointing out the bug.
2005-10-12 Kasper Peeters <[email protected]>
* Fixed a bug in the 'sort' member which takes a Comparator
function object (thanks to Robin Taylor for the patch).
2005-09-14 Kasper Peeters <[email protected]>
* Doxygen documentation added, plus a new web page.
2004-11-05 Kasper Peeters <[email protected]>
* Fixed a bug which shows up when inserting nodes at the top of
the tree (thanks to Matthias Bernt for pointing me to this one).
2004-07-21 Kasper Peeters <[email protected]>
* Fixed kp::destructor -> destructor.
* Moved body of 'compare_nodes::operator()' into the class
declaration in order to satisfy buggy Borland compilers (and stop
regular email messages about this problem).
* Fixed a completely buggy number_of_siblings() (thanks to Caleb
Epstein for the patch).
2004-02-04 Kasper Peeters <[email protected]>
* Released 1.106
* Fixed a bug in insert(sibling_iterator, const T&) (thanks to
Maxim Yegorushkin for the patch).
2003-11-21 Kasper Peeters <[email protected]>
* Put some things in a namespace to avoid clashes with other
libraries.
2003-10-13 Kasper Peeters <[email protected]>
* Released 1.102.
* Fixed return type of postincrement/decrement operators (thanks
to Yevhen Tymokhin for pointing this out).
2003-09-18 Kasper Peeters <[email protected]>
* Fixes for standard compliance, as required to compile with
gcc 3.4 and later.
2003-08-12 Kasper Peeters <[email protected]>
* Added 'empty' member (patch by Michael Vogt).
2003-08-01 <[email protected]>
* Released 1.95
* Fixed two bugs in sort (which were corrupting the tree); thanks
to Michael Vogt for informing me about the problem.
2003-07-17 <[email protected]>
* Added a hack to enable compilation with STLport.
2003-07-11 <[email protected]>
* Released 1.90
* Added postfix increment and decrement operators; thanks to
Claudio Andreatta for sending the patch.
* Fixed a bug in reparent(iter pos, iter from). Thanks to Claudio
Andreatta for fixing this.
2003-06-25 Kasper Peeters <[email protected]>
* Many bug fixes for fixed depth iterators, thanks to Ruben
Niederhagen for pointing out several problems (a few still exist,
see the 'TODO' part of tree.hh).
2003-04-17 Kasper Peeters <[email protected]>
* Released 1.85
* Corrected return type of operator++ and friends.
* Added preliminary support for 'fixed_depth_iterator' to iterate
over children at a given level. Not quite finished yet, sorry.
2003-03-24 Kasper Peeters <[email protected]>
* Released 1.83
* Changed return type of 'child' member function to be a sibling
iterator instead of a reference to the actual node (sorry for the
incompatibility with previous versions). Change also propagated to
tree_msvc.hh.
2003-02-07 <[email protected]>
* Released 1.80
* Fixed another bug in sort (thanks to Tony Cook for fixing this
bug).
2003-01-29 Kasper Peeters <[email protected]>
* Released 1.78.
* Fixed a bug in sort, which resulted in a corrupt tree (thanks to
Michael Vogt for fixing this bug).
2003-01-07 Kasper Peeters <[email protected]>
* Released 1.75 and msvc version 1.72
* Fixed a wrongly specialised 'insert' method for
sibling_iterators (thanks to Tony Cook for pointing this out).
2002-11-15 Kasper Peeters <[email protected]>
* Released 1.72
* Fixed a bug in 'index' when called on nodes at the top level of
the tree (thanks to David Zajic for the bug report). Be warned
that the top level is a bit special at the moment; the end
sibling_iterator is ill-defined for siblings there (to be fixed in
a future version).
2002-10-31 Kasper Peeters <[email protected]>
* Released 1.70.
* Finished the merge algorithm, updated the documentation with
examples about its use, and added a test-case to the test_tree.cc
program.
* Fixed a bug in pre_order_iterator::operator--.
2002-10-20 Kasper Peeters <[email protected]>
* Released 1.66.
2002-10-15 Kasper Peeters <[email protected]>
* Code for post_order_iterator implemented.
2002-10-13 Kasper Peeters <[email protected]>
* Rewrote large parts of the code to allow for multiple iterator
types, such as pre_order_iterator (which was the previous iterator
type), post_order_iterator and so on. This required small changes
to the interface, the most visible one being
- insert(iterator, iterator) for the insertion of a subtree
is now called insert_subtree(iterator, iterator).
Apologies if this breaks your code.
2002-10-11 Kasper Peeters <[email protected]>
* Removed '(void)' type declarations in favour of the C++ standard
empty brackets '()'.
2002-10-10 Kasper Peeters <[email protected]>
* Added 'index' in response to a discussion on the Boost mailing
list.
2002-10-03 Kasper Peeters <[email protected]>
* reparent(iterator,sibling_iterator,sibling_iterator) now accepts
an empty range, in which case it does nothing (request by Jos de
Laender).
* Fixed a bug in the iterator(sibling_iterator) constructor
(thanks to Jos de Laender for pointing this out).
2002-09-04 Kasper Peeters <[email protected]>
* Fixed a bug in insert_after (thanks to Carl Blanchette for the
patch).
2002-08-29 Kasper Peeters <[email protected]>
* The problem in test_tree of the previous item was actually do to
tree::end(iterator) returning the end of the tree, not the end of
the current sibling list. Fixed now, released 1.55.
2002-08-26 Kasper Peeters <[email protected]>
* Released 1.54.
* Printing a single-node tree in test_tree would result in a
segfault; more robust now (thanks to Yutaka Sato for the bug
report).
2002-05-07 Kasper Peeters <[email protected]>
* Fixed a bug in "sort" which would remove duplicate nodes altogether.
2002-03-24 Kasper Peeters <[email protected]>
* Added "append_child" without child argument, to add empty child
node.
2002-05-04 Kasper Peeters <[email protected]>
* Released 1.45.
* Removed restriction of having only a single node at the top of
the tree (associated with this, the top nodes should now be inserted
with "insert", not with "append_child").
* Fixes for ISO compatibility (now works with gcc-3.1). Thanks to
Olivier Verdier.