#include <functional>
#include <vector>
template<typename Tpoint>
struct foo
{
foo(int, std::function<int(Tpoint, Tpoint)>) {}
foo(int, std::function<int(Tpoint, Tpoint, std::vector<Tpoint>)>) {}
};
int main() {
foo<int> bar(2,[](int const& l, int const& r){
return 5;
});
}
I2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDx2ZWN0b3I+Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUcG9pbnQ+CnN0cnVjdCBmb28KewoJZm9vKGludCwgc3RkOjpmdW5jdGlvbjxpbnQoVHBvaW50LCBUcG9pbnQpPikge30KCWZvbyhpbnQsIHN0ZDo6ZnVuY3Rpb248aW50KFRwb2ludCwgVHBvaW50LCBzdGQ6OnZlY3RvcjxUcG9pbnQ+KT4pIHt9Cn07CgppbnQgbWFpbigpIHsKCWZvbzxpbnQ+IGJhcigyLFtdKGludCBjb25zdCYgbCwgaW50IGNvbnN0JiByKXsKICAgIHJldHVybiA1Owp9KTsKfQoK