#include <iostream>
#include <functional>


template <typename T> struct MinHeap
{
	std::function<bool(T, T)> less;

	MinHeap(const std::function<bool(T, T)>& cmp) : less(cmp)
	{
		// ...
	}
};


int main()
{
	MinHeap<int> yoba([](int a, int b) { return (a % 2 == 1 && b % 2 == 0) || (a % 2 == b % 2 && a < b); });
	std::cout << yoba.less(1, 2) << ' '
	          << yoba.less(7, 2) << ' '
	          << yoba.less(6, 2) << ' '
	          << yoba.less(6, 9) << std::endl;
	return 0;
}