#include <iostream>
#include <tuple>


template<typename ...Ts>
bool is_equal(const std::tuple<Ts...>& lhs, const std::tuple<Ts...>& rhs)
{
	return lhs == rhs;
}

template<typename ...Ts, typename... Us>
bool is_equal(const std::tuple<Ts...>&, const std::tuple<Us...>&)
{
	return false;
}



int main() {
    std::tuple<int, int> t1(1, 2);
    std::tuple<int> t2(1);
    
    std::cout << is_equal(t1, t2) << std::endl;
    std::cout << is_equal(t1, std::make_tuple(1, 2)) << std::endl;
}