класс. В нем определен сам шаблонный класс и специализация для методов под float.
class Vec2<T>;
typedef Vec2<float> Vec2f;
Дальше создаю класс в котором использую конкретный тип именно Vec2f.
В .hpp определен класс, реализованы некоторые методы.
А в .cpp определены два других метода.
И вот сама visual studio 2015 ничего не подчеркивает, но при компиляции получаю такую шнягу:
File.cpp
Vec2.h(85): error C3646: 'ix': unknown override specifier
Vec2.h(194): note: see reference to class template instantiation 'math::Vec2<T>' being compiled
Vec2.h(85): error C2059: syntax error: ')'
Сигнатура первого метода выглядит так:
void StraightLine::intersect(const StraightLine& line, OUT math::Vec2f& point) const;
Так же есть ошибка, которая указывает на строчку с заголовком функции:
'math::StraightLine': use of class template requires template argument list
Что за херня и как это исправить?
hpp где инклюдиш
Это не специализация, это инстанциация.
Обсуждают сегодня