#include<iostream>
#include<set>
#include<vector>
#include<functional>
int32_t main(void){
std::vector < std::pair<int,int> > v = { {1,2} , {1,2} };
std::function<bool(int, int)> func = [&v](int i, int j) { return v[i] > v[j]; };
std::set<int, decltype(func)> index_set(func);
index_set.insert(0);
index_set.insert(1);
std::cout<< "Why is set size equal to " << index_set.size() << ". Keys ({0,1}) inserted are not equivalent.\n";
// Why is size still 1?
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHNldD4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxmdW5jdGlvbmFsPgoKaW50MzJfdCBtYWluKHZvaWQpewoKCXN0ZDo6dmVjdG9yIDwgc3RkOjpwYWlyPGludCxpbnQ+ID4gIHYgPSB7IHsxLDJ9ICwgezEsMn0gfTsKCQoJc3RkOjpmdW5jdGlvbjxib29sKGludCwgaW50KT4gZnVuYyA9IFsmdl0oaW50IGksIGludCBqKSB7IHJldHVybiB2W2ldID4gdltqXTsgfTsKCglzdGQ6OnNldDxpbnQsIGRlY2x0eXBlKGZ1bmMpPiBpbmRleF9zZXQoZnVuYyk7CgkKCWluZGV4X3NldC5pbnNlcnQoMCk7CglpbmRleF9zZXQuaW5zZXJ0KDEpOwoJCglzdGQ6OmNvdXQ8PCAiV2h5IGlzIHNldCBzaXplIGVxdWFsIHRvICIgPDwgIGluZGV4X3NldC5zaXplKCkgPDwgIi4gS2V5cyAoezAsMX0pIGluc2VydGVkIGFyZSBub3QgZXF1aXZhbGVudC5cbiI7IAoJLy8gV2h5IGlzIHNpemUgc3RpbGwgMT8KCnJldHVybiAwOwp9