#include <map>
#include <functional>
template <typename T>
static bool indirectLess(const T* a, const T* b)
{
if (a==b)
return false;
if (!a)
return true;
if (!b)
return false;
return std::less<T>()(*a, *b);
}
typedef int T;
typedef int V;
int main()
{
typedef bool (*cmp_t)(const T*, const T*);
std::map<T*,V,cmp_t> tsMap(&indirectLess<T>);
}
I2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPGZ1bmN0aW9uYWw+Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KCXN0YXRpYyBib29sIGluZGlyZWN0TGVzcyhjb25zdCBUKiBhLCBjb25zdCBUKiBiKQp7CglpZiAoYT09YikgCgkJcmV0dXJuIGZhbHNlOwoJaWYgKCFhKQoJCXJldHVybiB0cnVlOwoJaWYgKCFiKQoJCXJldHVybiBmYWxzZTsKCXJldHVybiBzdGQ6Omxlc3M8VD4oKSgqYSwgKmIpOwp9Cgp0eXBlZGVmIGludCBUOwp0eXBlZGVmIGludCBWOwoKaW50IG1haW4oKQp7Cgl0eXBlZGVmIGJvb2wgKCpjbXBfdCkoY29uc3QgVCosIGNvbnN0IFQqKTsKCglzdGQ6Om1hcDxUKixWLGNtcF90PiB0c01hcCgmaW5kaXJlY3RMZXNzPFQ+KTsKfQoK