2015-10-20 3 views
-1

Мой код заключается в следующем:перегрузки Функция мин и шаблон

#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: '(': незаконный токен в правой части '::' c: \ pierre \ prog \ mylibim \ sources \ Fct_image \ fct_manipulation_image_T.h 1164 1 test_dilatation_rapide

  • Ошибка 5 ошибка C2988: неузнаваемыми шаблон декларации/определение C: \ Клееный \ прога \ mylibim \ Sources \ Fct_image \ fct_manipulation_image_T.h 1164 1 test_dilatation_rapide

  • Ошибка 6 ошибки C2059: синтаксическая ошибка: '::' C: \ Клееный \ прога \ mylibim \ Sources \ Fct_image \ fct_manipulation_image_T.h 1164 1 test_dilatation_rapide

  • Ошибка 7 ошибка C2059: синтаксическая ошибка: ')' C: \ Клееный \ прога \ mylibim \ Sources \ Fct_image \ fct_manipulation_image_T.h 1164 1 test_dilatation_rapide

+2

работает ли он '#undef min' или' рядный Тим (мин) (const Изображение & im) {'? –

+1

Что включают магические? –

ответ

3

Вы не предоставляете информацию для точного ответа мы не знаем, на что указывают эти сообщения об ошибках и какой код стоит за ним.

Но я буду использовать свои психические способности и подсказку, что это, похоже, компилятор Microsoft. Таким образом, я считаю правильным вопрос: «Почему макросы функции для min/max - плохая идея?», И ответ «потому что они дадут вам странные сообщения об ошибках».

Попробуйте добавить Эти определения , прежде чем включать в себя все

#ifndef NOMINMAX 
#define NOMINMAX 
#endif 

Или установите определить NOMINMAX в настройках проекта

Смежные вопросы