Тип карты из STL имеет следующий тип:
std::map< Key, Data, Compare, Alloc >
Как один из параметров шаблона мы можем передать предикат Compare
, почему map принимает этот предикат как параметр шаблона, а не как объект в конструкторе?
Может иметь более гибкий интерфейс с чем-то вроде boost::function< bool, const T&, const T& >
в конструкторе.
Конечно, я понимаю, что когда STL был спроектирован, boost не существует, но дизайнеры могли бы создать нечто похожее на boost :: function.
Я полагаю, у этого есть несколько глубоких причин.
EDITED
Извините за глупый вопрос, карта имеет такую же возможность:)
Мой вопрос не имеет смысла после ваших ответов.