#include <iostream> template <typename lhs_t, typename func_t> inline func_t operator > (lhs_t const &lhs, func_t rhs) { return rhs; } template <typename rhs_t, typename func_t> inline auto operator < (func_t const &lhs, rhs_t const &rhs) -> decltype(lhs()) { return lhs(); } int main (void) { auto __ = [](){return "!!(0>__<0)";}; std::cout << (!!0>__<0) << std::endl; return 0; }