Проблема с глобальной функцией шаблона - PullRequest
0 голосов
/ 04 мая 2011

По какой-то причине я не могу вызвать мою глобальную шаблонную функцию в GCC ...

Глобальная функция, определенная в " глобальных значениях.h":

template <typename T1, typename T2> inline T1 Min (const T1 & v1, const T2 & v2)
{
    return v1 < v2 ? v1 : v2;
}

Вызов функции из класса, определенного в" test.h":

#include "globals.h"

class Test
{
public:
    Test()
    {
        int a = 2;
        int b = 3;
        int c = Min(a, b); //error: 'Min' was not declared in this scope
        int d = ::Min(a, b); //error: '::Min' has not been declared
        int e = Min<const int, const int>(a, b); //error: expected primary-expression before 'const'
        int f = this->Min(a, b); //error: 'class Test' has no member named 'Min'
    }
};

Что мне делать?

1 Ответ

1 голос
/ 04 мая 2011

g ++ версия 4.3.4 компилирует их правильно, выдавая ошибку только для последней строки.См. http://ideone.com/cD13Y. Какую версию вы используете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...