#include <vector>
#include <string>
#include <set>
#include <algorithm>
int main()
{
std::vector<int> v1;
std::sort(v1.begin(), v1.end()); //Compiles happily with integers
std::vector<double> v2;
std::sort(v2.begin(), v2.end()); //Compiles happily with doubles
std::vector<std::string> v3;
std::sort(v3.begin(), v3.end()); //Compiles happily with std::string
std::set<int> s1;
s1.find(int()); //Compiles happily with integers
std::set<double> s2;
s2.find(double()); //Compiles happily with doubles
std::set<std::string> s3;
s3.find(std::string()); //Compiles happily with std::string
return 0;
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHNldD4KCiNpbmNsdWRlIDxhbGdvcml0aG0+CgppbnQgbWFpbigpCnsKICAgICAgICBzdGQ6OnZlY3RvcjxpbnQ+IHYxOwogICAgICAgIHN0ZDo6c29ydCh2MS5iZWdpbigpLCB2MS5lbmQoKSk7IC8vQ29tcGlsZXMgaGFwcGlseSB3aXRoIGludGVnZXJzCgogICAgICAgIHN0ZDo6dmVjdG9yPGRvdWJsZT4gdjI7CiAgICAgICAgc3RkOjpzb3J0KHYyLmJlZ2luKCksIHYyLmVuZCgpKTsgLy9Db21waWxlcyBoYXBwaWx5IHdpdGggZG91YmxlcwoKICAgICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gdjM7CiAgICAgICAgc3RkOjpzb3J0KHYzLmJlZ2luKCksIHYzLmVuZCgpKTsgLy9Db21waWxlcyBoYXBwaWx5IHdpdGggc3RkOjpzdHJpbmcKCiAgICAgICAgc3RkOjpzZXQ8aW50PiBzMTsKICAgICAgICBzMS5maW5kKGludCgpKTsgLy9Db21waWxlcyBoYXBwaWx5IHdpdGggaW50ZWdlcnMKCiAgICAgICAgc3RkOjpzZXQ8ZG91YmxlPiBzMjsKICAgICAgICBzMi5maW5kKGRvdWJsZSgpKTsgLy9Db21waWxlcyBoYXBwaWx5IHdpdGggZG91YmxlcwoKICAgICAgICBzdGQ6OnNldDxzdGQ6OnN0cmluZz4gczM7CiAgICAgICAgczMuZmluZChzdGQ6OnN0cmluZygpKTsgLy9Db21waWxlcyBoYXBwaWx5IHdpdGggc3RkOjpzdHJpbmcKCQkKCXJldHVybiAwOwp9