template <typename T>
class NameComparator
{
public:
inline bool operator()(const T* s1, const T* s2) const {
return s1->getName() < s2->getName();
}
};
class IdComparator
{
public:
inline bool operator()(const NetlistObj* s1, const NetlistObj* s2) const {
return s1->getId() < s2->getId();
}
};
template<typename K, typename T, typename Compare>
class HalfKeySet : public std::set<T*, Compare >
{
public:
// std::set<T*, Compare, std::allocator<T*> >::const_iterator;
typedef typename std::set<T*, Compare>::const_iterator const_iterator;
typedef typename std::set<T*, Compare >::iterator iterator;
typedef SetIterator<T*, Compare> GeneralIterator;
using std::set<T*, Compare >::find;
const_iterator find(const K& name) {
T key(name);
return std::set<T*, Compare >::find(&key);
}
};
class NameComparator
{
public:
inline bool operator()(const T* s1, const T* s2) const {
return s1->getName() < s2->getName();
}
};
class IdComparator
{
public:
inline bool operator()(const NetlistObj* s1, const NetlistObj* s2) const {
return s1->getId() < s2->getId();
}
};
template<typename K, typename T, typename Compare>
class HalfKeySet : public std::set<T*, Compare >
{
public:
// std::set<T*, Compare, std::allocator<T*> >::const_iterator;
typedef typename std::set<T*, Compare>::const_iterator const_iterator;
typedef typename std::set<T*, Compare >::iterator iterator;
typedef SetIterator<T*, Compare> GeneralIterator;
using std::set<T*, Compare >::find;
const_iterator find(const K& name) {
T key(name);
return std::set<T*, Compare >::find(&key);
}
};