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