gpt4 book ai didi

c++ - 为什么第一个函数调用绑定(bind)到第一个函数?

转载 作者:可可西里 更新时间:2023-11-01 16:11:18 26 4
gpt4 key购买 nike

<分区>

为什么第一个函数调用 (cm(car);) 绑定(bind)到第一个函数?

我知道第二次调用绑定(bind)到第二个函数,因为它不是模板,尽管两者都是完美匹配。

如果第一个函数定义为固定数组长度的非模板,如:

    void cm(const char (&h)[8]) {cout << "const char (&)[8]" << endl;}

然后它再次被选中而不是第二个(第二个调用将以这种方式模棱两可)。

代码:

template<size_t N> void cm(const char (&h)[N]) 
{std::cout << " const (&)[N] " << endl;}

void cm(const char * h)
{cout << " const char * " << endl;}

int main()
{
char car[] = "errqweq";
const char ccar[] = "errqweq";
cm(car);
cm(ccar);
}

输出:

 const (&)[N]
const char *

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com