#include <algorithm>
#include <iterator>
#include <vector>
#include <iostream>
#include <array>
 
template<typename T>
struct TypeCheck;


int main()
{
	{
	std::vector<int> vec{1};
	auto val = vec.begin();
	auto check = TypeCheck<decltype(val)>{};
	}
	
	{
	std::vector<bool> vec{true};
	auto val = vec.begin();
	auto check = TypeCheck<decltype(val)>{};
	}
	
	{
	std::array<int, 1> vec{1};
	auto val = vec.begin();
	auto check = TypeCheck<decltype(val)>{};
	}
	
	{
	std::array<bool, 1> vec{false};
	auto val = vec.begin();
	auto check = TypeCheck<decltype(val)>{};
	}
}