const char(&)[N] vs const char * for string literal

时间:2016-11-02 18:14:39

标签: c++

选择{p> 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);
}

0 个答案:

没有答案