求大神指点C++ template使用问题

图片说明
这是程序代码
图片说明
这是编译结果

我想试试用template写一个返回较小值的方法,但是为什么会出错呢?
还想请教的问题是如果用Mac的话,在terminal中编译和用Xcode编译有区别吗?谢谢

 #include <iostream>
using namespace std;

template <typename T>
T min(T &a, T &b)
{
    return a > b ? b : a;
}

int main()
{
    int i = 1, j = 2;
    int result = min(i, j);
    cout << result;
}

http://ideone.com/E9cqbV

换个名字,不要用min跟系统的冲突了。

1.在错误提示中,写出了,在c++/v1/algorithm文件的2544行处已经也有一个min的定义,所以引起了歧义。
2.你提的在终端编译是不是使用g++来编译的,或者使用Makefile(文件中用g++或其它)来编译的。
终端编译你可以自己修改编译选项,用xcode编译的话,xcode软件本身会自动加一些编译选项,当然也可以通过设置修改。
最终编译成功之后的可执行文件,都一样的可执行二进制文件。