#include <iostream>
template<size_t N>
using array_of_char = char const[N];
char const a[3] = "12";
array_of_char<3> b = "12";
array_of_char<3>& x = a;
array_of_char<3>& y = b;
template<size_t N>
using array_of_char_ref = array_of_char<N>&;
template<size_t N>
void fn(array_of_char_ref<N> x){ // error: redefinition, that's literally the same thing
std::cout << x << N;
}
int main() {
fn(a);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKCXRlbXBsYXRlPHNpemVfdCBOPgoJdXNpbmcgYXJyYXlfb2ZfY2hhciA9IGNoYXIgY29uc3RbTl07CgkKCWNoYXIgY29uc3QgYVszXSA9ICIxMiI7CglhcnJheV9vZl9jaGFyPDM+IGIgPSAiMTIiOwoJCglhcnJheV9vZl9jaGFyPDM+JiB4ID0gYTsKCWFycmF5X29mX2NoYXI8Mz4mIHkgPSBiOwoJCgl0ZW1wbGF0ZTxzaXplX3QgTj4KCXVzaW5nIGFycmF5X29mX2NoYXJfcmVmID0gYXJyYXlfb2ZfY2hhcjxOPiY7CgkKCgl0ZW1wbGF0ZTxzaXplX3QgTj4KCXZvaWQgZm4oYXJyYXlfb2ZfY2hhcl9yZWY8Tj4geCl7IC8vIGVycm9yOiByZWRlZmluaXRpb24sIHRoYXQncyBsaXRlcmFsbHkgdGhlIHNhbWUgdGhpbmcKCQlzdGQ6OmNvdXQgPDwgeCA8PCBOOwoJfQoKaW50IG1haW4oKSB7CglmbihhKTsKCglyZXR1cm4gMDsKfQ==