C 模板编译误差



我是模板的新手,在阅读如何进行模板后,我正在尝试对其进行测试,但是我遇到了汇编错误,我的代码看起来与我从中取的例子。我创建一个函数,并且有一个模板,但是当我编译时,我会收到以下错误:

15 20 C: USER fire desktop test.cpp [error] call of Overloaded'max(int,int(''是模棱两可的

15 20 C: USER fire desktop test.cpp [note]候选人是:

7 3 C: users fire desktop test.cpp [note] t max(t,t([with t = int]

代码如下:

#include <iostream>
using namespace std;
template<typename T>
T max(T a, T b){
    return (a > b)? a: b;
}    
int main(){
    cout << max<int>(10, 40);
    return 0;
}

std::maxstd名称空间的一部分。您正在执行using namespace std并在没有std预选赛的情况下解决所有功能。这意味着您的代码中有2个版本的max。您的和namespace std。为了解决这个问题,切勿执行using namespace std

std :: max是在C 中定义的函数。调用您的功能mymax或类似的功能,它应该有效

最新更新