Avoid using incomplete types with std containers

...which is explicitly supported by Boost.Container though, but we cannot use
boost::container::map here as Boost.Container is only available since Boost 1.48
and our base is 1.47 still.  However, there appears no need for Children to be
sorted, and std::unordered_map (and thus boost::unordered_map) requires that
pointers to elements are not invalidated by insertions, which we do require.

Change-Id: I70ad6f40318d2bafae53ebb67d84c1c89a7d68f6
This commit is contained in:
Stephan Bergmann
2014-05-06 10:41:18 +02:00
parent cbcc6189e3
commit 03d960ac11

View File

@@ -22,8 +22,7 @@
#include "sal/config.h"
#include <map>
#include "boost/unordered_map.hpp"
#include "boost/noncopyable.hpp"
#include "path.hxx"
@@ -34,7 +33,7 @@ namespace configmgr {
class Modifications: private boost::noncopyable {
public:
struct Node {
typedef std::map< OUString, Node > Children;
typedef boost::unordered_map<OUString, Node, OUStringHash> Children;
Children children;
};