C++ 重载函数min和模板

C++ 重载函数min和模板,c++,C++,我的代码如下: #include <vector> #include <iterator> #include <iostream> #include <algorithm> #include <functional> #include <numeric> #include <cassert> #include "image.h" #include "..\Fct_

我的代码如下:

#include <vector>
#include <iterator>
#include <iostream>
#include <algorithm>  
#include <functional>  
#include <numeric>    
#include <cassert>


#include "image.h"
#include "..\Fct_numerique\fct_numerique.h"
    
template<typename Tim>
inline Tim min(const Image<Tim>& im){
    return( *std::min_element(im.begin(), im.end_element()) );
}
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括“image.h”
#包括“.\Fct\u numerique\Fct\u numerique.h”
样板
内联Tim min(常量图像和im){
return(*std::min_元素(im.begin(),im.end_元素());
}
它给了我以下我不理解的错误:

  • 错误4错误C2589:'(':右侧的非法令牌::'c:\pierre\prog\mylibim\sources\Fct\u image\Fct\u manipulation\u image\u T.h 1164 1测试扩展\u rapide

  • 错误5错误C2988:无法识别的模板声明/定义c:\pierre\prog\mylibim\sources\Fct\u image\Fct\u manipulation\u image\u T.h 1164 1测试扩展\u rapide

  • 错误6错误C2059:语法错误:':'c:\pierre\prog\mylibim\sources\Fct\u image\Fct\u manipulation\u image\u T.h 1164 1测试扩展\u rapide

  • 错误7错误C2059:语法错误:')c:\pierre\prog\mylibim\sources\Fct\u image\Fct\u manipulation\u image\u T.h 1164 1测试\u扩展\u rapide


您没有给出准确答案的信息,我们不知道这些错误消息指向何处以及背后的代码

但我会使用我的灵力和线索,这似乎是微软的编译器。因此,我认为正确的问题是“为什么最小/最大函数宏是个坏主意?”,答案是“因为它们会给你奇怪的错误消息”

在包含任何内容之前,请尝试添加这些定义

#ifndef NOMINMAX
#define NOMINMAX
#endif

或者在项目设置中设置define NOMINMAX

它与
#unde min
内联Tim(min)(const Image&im){
一起工作吗?这些神奇的功能包括哪些?