无论铛也不是GCC,编译如下:
#include <algorithm>
int main()
{
size_t t = 1;
t = std::max(t,0);
}
给人的味道一些错误:
error: no matching function for call to 'max(size_t&,int)'
... note: template argument deduction/substitution failed:
如果我明确地提供了模板类型,它的工作原理:
#include <algorithm>
int main()
{
size_t t = 1;
t = std::max<size_t>(t,0);
}
这是令人困惑,因为没有编译器警告抱怨,如果我比较size_t
至0
,喜欢它想如果我相比size_t
来int
。 然后,我推断,编译器可以计算出它的意义比较0
至size_t
,那么是什么阻止来自搞清楚,编译器max
使用?