Шаблон функции в классе
От: potap  
Дата: 01.08.05 12:42
Оценка:
Хочу написать тело шаблонной функции отдельно от объвления класса.

#include "stdafx.h"

class A
{
public:
    template <class T>
    void f(T v);
};

template <class T>
inline void A::f(T v)
{
}


int main(int argc, char* argv[])
{
    A a;
    a.f((int)5);
    return 0;
}


Но при этом случается вот такая ошибка.

Y:\Projects\Test\Test.cpp(22) : error C2893: Failed to specialize function template 'void __thiscall A::f(T)'
        With the following template arguments:
        'int'


А если засовываю определение функции в сам класс, то все нормально.

#include "stdafx.h"

class A
{
public:
    template <class T>
    void f(T v)
    {
    }
};

int main(int argc, char* argv[])
{
    A a;
    a.f((int)5);
    return 0;
}


Как бы победить?
Re: Шаблон функции в классе
От: A. Fedotov Украина  
Дата: 01.08.05 12:57
Оценка: 1 (1)
Здравствуйте, potap, Вы писали:

P>Хочу написать тело шаблонной функции отдельно от объвления класса.


P>Как бы победить?


на 6-ке не проходит , на 7-ке , Buildere и т.д. проходит
Re: Шаблон функции в классе
От: Bell Россия  
Дата: 01.08.05 12:58
Оценка: 1 (1)
Здравствуйте, potap, Вы писали:


P>Как бы победить?


Если речь идет о VC6 — то никак.
Любите книгу — источник знаний (с) М.Горький
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.