#include <iostream>
struct C {
template<typename T>
void fn(T) = delete;
template<size_t N>
void fn(char const (&x)[N]){
std::cout << x << N;
}
template<>
void fn<char const *>(char const *x){
std::cout << x;
}
} c;
int main() {
c.fn("test");
char const a[] = "test";
c.fn(a);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IEMgewoJdGVtcGxhdGU8dHlwZW5hbWUgVD4KCXZvaWQgZm4oVCkgPSBkZWxldGU7CgkKCXRlbXBsYXRlPHNpemVfdCBOPgoJdm9pZCBmbihjaGFyIGNvbnN0ICgmeClbTl0pewoJCXN0ZDo6Y291dCA8PCB4IDw8IE47Cgl9Cgl0ZW1wbGF0ZTw+Cgl2b2lkIGZuPGNoYXIgY29uc3QgKj4oY2hhciBjb25zdCAqeCl7CgkJc3RkOjpjb3V0IDw8IHg7Cgl9Cn0gYzsKCmludCBtYWluKCkgewoJYy5mbigidGVzdCIpOwoJY2hhciBjb25zdCBhW10gPSAidGVzdCI7CgljLmZuKGEpOwp9