Функторы STL реализованы следующим образом:
template<class T>
struct less{
bool operator()(T const& lhs, T const& rhs){
return lhs < rhs;
}
};
Это заставляет нас упоминать (возможно, длинный) тип каждый раз, когда мы создаем такой функтор. Почему они не реализованы, как показано ниже? Любые причины?
struct less{
template<class T>
bool operator()(T const& lhs, T const& rhs){
return lhs < rhs;
}
};
Это сделает их пригодными для использования без упоминания (возможно, длинных) типов.