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

template <typename T>
bool all_equal(const initializer_list<T>& l) {
	return equal(l.begin() + 1, l.end(), l.begin());
}

int main() {
	int a = 1, b = 1, c = 1;
	cout << all_equal({a, b, c}) << endl;
	a = 0;
	cout << all_equal({a, b, c}) << endl;
	string s = "ab", t = "ab", st = "ab";
	cout << all_equal({s, t, st}) << endl;
	t = "ba";
	cout << all_equal({s, t, st}) << endl;
	return 0;
}