#include <iostream>
template <unsigned int N> void foo(char const (&)[N]) {}
void foo(char const *) { std::cout << "Foo\n"; }
int main()
{
char const * const a = "Hello";
char const b[] = "World";
foo(a);
foo(b);
foo(static_cast<char const (&)[6]>(b));
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdGVtcGxhdGUgPHVuc2lnbmVkIGludCBOPiB2b2lkIGZvbyhjaGFyIGNvbnN0ICgmKVtOXSkge30Kdm9pZCBmb28oY2hhciBjb25zdCAqKSB7IHN0ZDo6Y291dCA8PCAiRm9vXG4iOyB9CgppbnQgbWFpbigpCnsKCWNoYXIgY29uc3QgKiBjb25zdCBhID0gIkhlbGxvIjsKCWNoYXIgY29uc3QgYltdID0gIldvcmxkIjsKCQoJZm9vKGEpOwoJZm9vKGIpOwoJZm9vKHN0YXRpY19jYXN0PGNoYXIgY29uc3QgKCYpWzZdPihiKSk7Cn0=