gpt4 book ai didi

c++ - 为什么下面的重载决议会调用非模板函数?

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

<分区>

为什么调用 max(x, y) 的重载解析在表达式 return max(max(x, y), z); 中下面导致调用非模板函数 char const* max(char const*, char const*)

据我所知,函数max<const char*>(x, y)比前者更合适,因为 xconst char* const&yconst char* const& !

#include <iostream>

template <typename T>
T const& max (T const& x, T const& y)
{
return x < y ? y : x;
}

char const* max (char const* x, char const* y)
{
return std::strcmp(x, y) < 0 ? y : x;
}

template <typename T>
T const& max (T const& x, T const& y, T const& z)
{
return max (max(x, y), z);
}

int main ()
{
const char* sx = "String_x";
const char* sy = "String_y";
const char* sz = "String_z";
max(sx, sy, sz);
}

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