STL matchmaking gone bad
Some STL containers, such as std::map, are designed to use std::pair to maintain keys and values. A special convenience function, std::make_pair, is often used to create pairs without having to specify template argument types. Typical code that makes use of an STL map looks like this:
std::map<std::string, std::string> m; // map<key,value> m.insert(std::make_pair("1", "one")); m.insert(std::make_pair("2", "two")); printf("%s", m.find("1")->second.c_str()); // prints "one"