con*_*ist 2 c++ reference function visual-studio
1: #include <windows.h>
2: int& max(int& a, int& b)
3: {
4:   return a > b ? a : b;
5: }
6: int main()
7: {
8:   return 0;
9: }
Visual Studio 2008速成版大喊:
1> e:...\main.cpp(2):错误C2062:输入'int'意外
1> e:...\main.cpp(2):错误C2062:输入'int'意外
1> e:...\main.cpp(2):错误C2059:语法错误:')'
1> e:...\main.cpp(3):错误C2143:语法错误:缺少';' 在'{'之前
1> e:...\main.cpp(3):错误C2447:'{':缺少函数头(旧式正式列表?)
如果我用stdio.h或iostream替换windows.h似乎有效(或者如果我删除它)
为什么是这样?
#include <windows.h>
#undef min
#undef max
int & max(int& a, int& b)
{
    return a > b ? a : b;
}
int main()
{
    return 0;
}
<windows.h>定义宏max和min干扰你的宏.
其他方法
重命名您的功能.
用NOMINMAX.这是推荐使用一些定义最小值和最大值的STL头的常见解决方案.
#define NOMINMAX
#include <windows.h>