844ad72e73
[SVN r56092]
52 lines
2.4 KiB
Plaintext
52 lines
2.4 KiB
Plaintext
Copyright (C) 2009 Sebastian Redl
|
|
Distributed under the Boost Software License, Version 1.0.
|
|
See http://www.boost.org/LICENSE_1_0.txt
|
|
|
|
|
|
List all breaking changes done to the interface during the update here.
|
|
|
|
- Template parameters
|
|
Template parameters have been thoroughly changed.
|
|
Impact: If you were using a custom instantiation of basic_ptree, you have to
|
|
change your code.
|
|
Rationale: The old order made no sense. It ordered the key comparison predicate
|
|
before the key, although it could easily be defaulted based on it,
|
|
and the path before the data type, when the path is something you
|
|
will very rarely want to change (and it could default, too).
|
|
|
|
- put*
|
|
The put and put_child functions of basic_ptree had add and add_child split from
|
|
them, by separating along the lines of the do_not_replace parameter.
|
|
Impact: If you were using the third parameter of these functions, you have to
|
|
change your code.
|
|
Rationale: I'm not fond of using boolean parameters to change function behavior.
|
|
They're hard to remember and hard to read in code. When projects
|
|
adopt the convention of passing /*boolean=*/true,
|
|
/*parameters=*/false, /*like=*/false this, something's wrong.
|
|
It's even more wrong when the parameter has a negative name, as
|
|
do_not_replace had.
|
|
|
|
- Custom paths
|
|
Custom paths have been thoroughly changed.
|
|
Impact: If you were using custom paths, you have to change your code. If you
|
|
referred to the basic_path template by name, you have to change your
|
|
code.
|
|
Rationale: The old interface required a huge amount of repeated code for
|
|
custom paths. The new interface is a lot easier to implement.
|
|
|
|
- Translators
|
|
Translators have been thoroughly changed.
|
|
Impact: If you were using translators at all, you probably have to change your
|
|
code.
|
|
Rationale: The new interface makes it easier to pass custom translators to
|
|
specific get/put operations. It also keeps the translator out of
|
|
the tree's type.
|
|
|
|
- find
|
|
find() returns an assoc_iterator.
|
|
Impact: If you use find, you may have to change your code. Most importantly,
|
|
you need to compare against not_found() instead of end().
|
|
Rationale: equal_range() also returns assoc_iterators. equal_range() cannot
|
|
return normal iterators, since the conversion would not preserve
|
|
the equal range or even the range property.
|