I would like to use my own comparator for std::set
, which needs a parameter to be passed to its constructor:
template <class T = double> class EpsCompare {
public:
EpsCompare(T input_eps) : _eps(input_eps) {};
bool operator() (const T & element1, const T & element2) const {
return ( round(element1*_eps) < round(element2*_eps) );
}
T _eps;
};
How do I pass this to the declaration of my set data type? I would like to do something like this:
std::set<double, EpsCompare<double>(1e-5)> myEpsSet;
This does not compile, so how else can it be done?