stl-овский template<class Key, class Cmp = less<Key>> не подходит, нужно что-то вроде:
template<class Key, class Cmp = less<Key_parent> class multiset как?
Собственно..
class Key_parent
class B: public Key_parent
class C: public Key_parent
И необходимо, чтобы можно было делать:
multiset<B> set_b;
multiset<C> set_c;
B b; C c;
set_b.lower_bound(c);
set_c.lower_bound(b);
Т.е. нужно, чтобы в качестве ключа множества можно было использовать родитель ключа. Можно с multimap, но это немного не то.. =(
Пока сделал с помощью lower_bound из <algorithm>
Вероятно, то же самое можно сделать и более изящно (специализация шаблона или что-то подобное, но еще очень страшное для меня.. :D )
Может кто подскажет? Спасибо.
Форум —
Development