foo(const char *)
而不是"hello"
的模板版本。如何让编译器选择模板版本呢?
#include <iostream>
template <size_t N>
void foo(const char (&)[N])
{
std::cout << N << std::endl;
}
void foo(const char *)
{
std::cout << "char*" << std::endl;
}
int main()
{
foo("hello");
char a[] = "world";
foo(a);
}