Map type from STL have next type:
std::map< Key, Data, Compare, Alloc >
As one of template parameters we could pass Compare
predicate, why map accept this predicate as template parameter and not as object in constructor?
It could has more flexible interface with something like boost::function< bool, const T&, const T& >
in constructor.
Ofcourse I'm understend that when STL was designed boost does not exists, but designers could be create something similar on boost::function.
I belive it has some deep reasons.
EDITED
Sorry for dummy question, map have same posibility :)
My question doesn't have sense after your answers.