Map из STL имеет следующий вид:станда :: карты: почему карта принимает компаратор в качестве параметра шаблона
std::map< Key, Data, Compare, Alloc >
В качестве одного из параметров шаблона мы могли бы пройти Compare
предикат, почему карта принимает этот предикат в качестве параметра шаблона а не как объект в конструкторе?
Он может иметь более гибкий интерфейс с чем-то вроде boost::function< bool, const T&, const T& >
в конструкторе.
Ofcourse Я understend, что, когда STL был разработан импульс не существует, но конструкторы могли бы создать что-то похожее на повышающего функции ::.
Я верю, что у него есть некоторые глубокие причины.
EDITED
Извините за фиктивный вопрос, карта есть же вешать :)
Мой вопрос не имеет смысла после ваших ответов.
+1 - Спасибо. Но, извините, я принял ответ Роба, потому что он был раньше вас. – bayda
На самом деле, ответ Нила был раньше примерно на 3 минуты, поэтому, если вы используете время отправки в качестве тай-брейкера для других одинаково полезных ответов, пожалуйста, примите решение принять этот ответ. –
Это действительно не имеет значения! – 2009-03-30 22:40:47