дружественные шаблонные функции
От: Аноним  
Дата: 25.11.05 16:40
Оценка:
Вот такой код:


#include "windows.h"

template<typename T> class vec2 {
public:
    T x,y;
    vec2() {
        x = y = 0;
    }
    vec2(T px, T py) {
        x = px;
        y = py;
    }

    vec2<T>& operator =(const vec2<T>& v) {
        x = v.x;
        y = v.y;
        return *this;
    }

    friend vec2<T> operator -(const vec2<T>&, const vec2<T>&);

};

template<typename T> inline vec2<T> operator -(const vec2<T>& u, const vec2<T>& v) {
    return vec2<T> ( u.x - v.x, u.y - v.y );
}

void main()
{
    vec2<float> a1;
    vec2<float> a2;
    vec2<float> a3;

    a3 = a1 - a2;
}


Пишет вот такую ошубку при линковке:


Linking...
main.obj : error LNK2019: unresolved external symbol "class vec2<float> __cdecl operator-(class vec2<float> const &,class vec2<float> const &)" (??G@YA?AV?$vec2@M@@ABV0@0@Z) referenced in function _main
Debug/test2.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

test2.exe - 2 error(s), 0 warning(s)


Компилятор VisualC (студия 6-я, а компилятор 7.1 — Делаем из Visual C 6 Visual C 7). Никаких сервис паков не стоит.

Поясните, плиз, че тут неправильно? Или просто попробовать сервис пак поставить? Просто мож в коде че неправильно?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.