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){
一起工作吗?这些神奇的功能包括哪些?