#include <iostream>
#include <type_traits>
using namespace std;

template <typename T>
struct dummy {};

template <typename T, typename U>
struct fail : dummy<T>, dummy<U> {};

template <typename T>
struct ok : dummy<T> {};

template <typename T>
true_type test(fail<T, T> a = fail<T, T>());

//template <typename T>
//true_type test(ok<T> a = ok<T>());

false_type test(...);

int main() {
	cout << decltype(test<int>())::value << endl;
}