我的代码如下:
#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()) );
}
它给了我以下错误,我不明白:
错误4错误C2589:&#39;(&#39;:&#39; ::&#39; c:\ pierre \ prog \ mylibim \ sources \ Fct_image \右侧的非法令牌fct_manipulation_image_T.h 1164 1 test_dilatation_rapide
错误5错误C2988:无法识别的模板声明/定义c:\ pierre \ prog \ mylibim \ sources \ Fct_image \ fct_manipulation_image_T.h 1164 1 test_dilatation_rapide
错误6错误C2059:语法错误:&#39; ::&#39; c:\ pierre \ prog \ mylibim \ sources \ Fct_image \ fct_manipulation_image_T.h 1164 1 test_dilatation_rapide
错误7错误C2059:语法错误:&#39;)&#39; c:\ pierre \ prog \ mylibim \ sources \ Fct_image \ fct_manipulation_image_T.h 1164 1 test_dilatation_rapide
答案 0 :(得分:3)
您没有提供准确答案的信息,我们不知道这些错误消息指向的位置以及它背后的代码。
但我将使用我的心灵力量和线索,这似乎是微软的编译器。因此,我认为正确的问题是“为什么min / max的函数宏是一个坏主意?”,答案是“因为它们会给你带来奇怪的错误信息”。
尝试在包含任何内容之前添加这些定义
#ifndef NOMINMAX
#define NOMINMAX
#endif
或者在项目设置中设置定义NOMINMAX