#include <iostream>
using namespace std;

template <unsigned int N>
struct array_wrapper {
    int arr[N];

	template<int Index>
	constexpr int const& at() const {
	    return arr[Index];
	}
};

template <unsigned int> struct deliberate_error;

int main() {
	constexpr array_wrapper<3> aw = { 1, 2, 3 };
	
	static_assert(aw.at<0>() == 1, "");
	
	return 0;
}