Доброго времени суток.
Есть шаблонный класс vect<N, T> (N - размерность, T - тип данных)
Класс целиком в .hpp.
После класса - определение пользовательских типов:
typedef vect<3, char> vect3c;
typedef vect<3, short> vect3s;
typedef vect<3, float> vect3f;
typedef vect<3, double> vect3d;
typedef vect<3, long double> vect3l;
typedef vect<3, int> vect3i;
typedef vect<3, unsigned int> vect3u;
Но вот если включить класс в .cpp и попробовать создать объект, то возникают проблемы:
vect3f = vect3f(0.0f, 0.0f, 1.0f); // vect3f was not declared in this scope
или, что то-же самое:
vect<3, float> = vect<3, float>(0.0f, 0.0f, 1.0f); // vect was not declared in this scope
Подскажите пожалуйста, в чём может быть проблема?
Примечание:
Да - это тип.
Да, C++11.
Но переменную как-раз объявить и не получается:
vect3f v;
vect3f was not declared in this scope
expected ; before v;
Примечание:
Конструктор есть.
Примечание:
Для 2D, 3D и 4D - частичная специализация.
Примечание:
Проблема решилась. Забыл, что поменял имя класса.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.