109 if (x.size() <= 1)
return true;
110 if (x.size() == 2)
return x[0] != x[1];
112 auto refless = [](T
const* l, T
const* r) {
return *l < *r; };
113 auto refeq = [](T
const* l, T
const* r) {
return *l == *r; };
115 std::vector< T const* > vp;
116 vp.reserve(x.size());
117 for (
size_t i = 0; i < x.size(); ++i)
119 sort(vp.begin(), vp.end(), refless);
121 return std::adjacent_find(vp.begin(), vp.end(), refeq) == vp.end();