#ifndef SHARECONTAINER_H
#define SHARECONTAINER_H
+#include <boost/utility.hpp>
+#include <boost/shared_ptr.hpp>
+
#include <vector>
#include <algorithm>
#include <functional>
-#include <boost/utility.hpp>
-#include <boost/smart_ptr.hpp>
/// Share objects between several users.
/**
value_type
get(Share const & ps) const {
// First see if we already have this ps in the container
- Params::iterator it = std::find_if(params.begin(),
- params.end(),
- isEqual(ps));
+ typename Params::iterator it = std::find_if(params.begin(),
+ params.end(),
+ isEqual(ps));
value_type tmp;
if (it == params.end()) {
// ok we don't have it so we should
return p.unique();
}
};
-
+
/** Remove all unique items.
This removes all elements from params that is only referenced
from the private container. This can be considered a memory
optimizaton.
*/
void clean() const {
- Params::iterator it = std::remove_if(params.begin(),
- params.end(),
- isUnique());
+ typename Params::iterator it = std::remove_if(params.begin(),
+ params.end(),
+ isUnique());
params.erase(it, params.end());
}
-
+
/// The actual container.
mutable Params params;
};