1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
1

Шаблон типа переменной

24.06.2014, 19:48. Показов 1550. Ответов 11
Метки нет (Все метки)

В графической библиотеке (SFML) есть шаблон для типа переменной Vector2. Переменная хранит в себе два числа заданного типа (Например, float). Как координаты на плоскости, если в общем. Уже есть три готовых типа переменных: unsigned int, int и float.
C++
1
2
3
4
// Define the most common types
typedef Vector2<int>          Vector2i;
typedef Vector2<unsigned int> Vector2u;
typedef Vector2<float>        Vector2f;
Проблема в том, что мне float'а не хватает. Пишу с типом double:
C++
1
typedef Vector2<double>        Vector2d;
Но тут выдаёт пёрлы: не хочет работать с разными типами (Например: Vector2d и Vector2i (С Vector2f и Vector2i работает)).
Не понимает определения и пространство имён (Да и вообще всё, что в том файле с кодом шаблона прописано ) в первом файле кода при таком подключении: к первому .c++ файлу подключён второй, а к нему сам файл с шаблоном.
В шаблонах не шарю, проблемы не понимаю.
Файлы с Vector2 во вложениях.
Заранее спасибо.
P.S. Почему-то форуму не понравилось название "Помогите с шаблоном".
Миниатюры
Шаблон типа переменной  
Вложения
Тип файла: zip Vector2.zip (3.1 Кб, 10 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.06.2014, 19:48
Ответы с готовыми решениями:

Переменной d присвоить первую цифру после запятой некоторой переменной x типа float
Нужно целой переменной d присвоить первую цыфру после комы некоторой переменной x типа float ...

Записать адрес переменной произвольного типа в переменную типа int
Здравствуйте, есть структура __packed struct myStruct{ uint32 HisCh; uint32 sNo; uint16...

Как присвоить значение одного из элементов массива типа char переменной типа int?
С++ начал буквально только что так что буду благодарен за терпение и понимание ) Сразу оговорюсь...

Использование переменной в другой переменной типа string
Здравствуйте, в C++ перешёл недавно и столкнулся с проблемой. Как мне в определённую часть string...

11
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
24.06.2014, 20:37 2
Цитата Сообщение от WinRar007 Посмотреть сообщение
Пишу с типом double
Где пишите? Файл с этим кодом где?
Попробуйте для начала не вводить никакой typedef а написать просто
C++
1
sf::Vector2<double> a;
Если съест - значит не всё так плохо и можно решать проблему дальше.
1
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
24.06.2014, 20:51  [ТС] 3
Где пишите? Файл с этим кодом где?
Я просто добавил строчку
C++
1
typedef Vector2<double>        Vector2d;
К
C++
1
2
3
typedef Vector2<int>          Vector2i;
typedef Vector2<unsigned int> Vector2u;
typedef Vector2<float>        Vector2f;
Решил исходный, без моих правок кинуть.
Цитата Сообщение от Tulosba Посмотреть сообщение
sf::Vector2<double> a;
Если съест - значит не всё так плохо и можно решать проблему дальше.
Съел.
Только боюсь, чтоб не вырвало.
Спасибо. Только вот Vector2d как-то красивее, чем sf::Vector2<double> выглядит. Точно нет решения с typedef?
0
5494 / 4889 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.06.2014, 21:01 4
Цитата Сообщение от WinRar007 Посмотреть сообщение
Точно нет решения с typedef?
У меня ошибки не выдаёт.
Миниатюры
Шаблон типа переменной  
1
5494 / 4889 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.06.2014, 21:21 5
...
1
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
24.06.2014, 21:24  [ТС] 6
В любом случае, спасибо. Тему пока закрывать не буду - хотелось бы решение с Vector2d.
0
5494 / 4889 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.06.2014, 21:40 7
Цитата Сообщение от WinRar007 Посмотреть сообщение
хотелось бы решение с Vector2d.
Чем не решение, в 4 посте? Или как-то по-другому нужно? Проблема непонятна.
0
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
24.06.2014, 22:00  [ТС] 8
Чем не решение, в 4 посте?
Вот:
Цитата Сообщение от WinRar007 Посмотреть сообщение
Но тут выдаёт пёрлы: не хочет работать с разными типами (Например: Vector2d и Vector2i (С Vector2f и Vector2i работает)).
Не понимает определения и пространство имён (Да и вообще всё, что в том файле с кодом шаблона прописано ) в первом файле кода при таком подключении: к первому .c++ файлу подключён второй, а к нему сам файл с шаблоном.
В шаблонах не шарю, проблемы не понимаю.
0
5494 / 4889 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
24.06.2014, 22:08 9
А вот:
Цитата Сообщение от Tulosba Посмотреть сообщение
Где пишите? Файл с этим кодом где?
Добавлено через 2 минуты
В архиве, что за файлы выложены? Библиотечные?
Цитата Сообщение от WinRar007 Посмотреть сообщение
Решил исходный, без моих правок кинуть.
Вы что, в библиотечных файлах правки делаете?
0
699 / 282 / 63
Регистрация: 22.12.2013
Сообщений: 1,946
Записей в блоге: 19
24.06.2014, 22:28 10
Лучший ответ Сообщение было отмечено WinRar007 как решение

Решение

"Спасибо. Только вот Vector2d как-то красивее, чем sf::Vector2<double> выглядит. Точно нет решения с typedef?"

Никто не запрещает написать тоже самое:
C++ (Qt)
1
typedef  sf::Vector2<double>  sfVector2d;
Или, как вам нравится. например "sfVec2dd". Это только для вашего удобства, смысл не поменяется.
Так уже будет из пространства имен sf.

Можно еще другой вариант:
C++ (Qt)
1
using namespace sf;
тогда дальше не нужно будет конкретно указывать
sf::Vector2<double> , а сразу обратиться к Vector2<double>
0
1 / 1 / 0
Регистрация: 08.04.2014
Сообщений: 80
25.06.2014, 19:31  [ТС] 11
Цитата Сообщение от alsav22 Посмотреть сообщение
Вы что, в библиотечных файлах правки делаете?
"Ты не имеешь права изменять этот старый замок, но сарай или пристройку - как угодно."(C) ЮНЕСКО
Цитата Сообщение от alsav22 Посмотреть сообщение
В архиве, что за файлы выложены? Библиотечные?
Я же уже сказал - файлы с шаблоном.
vvm28,
Может у вас всё и работает, но у меня лично нет. На миниатюре в первом посте видно.
0
5494 / 4889 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
25.06.2014, 20:46 12
Цитата Сообщение от alsav22 Посмотреть сообщение
Вы что, в библиотечных файлах правки делаете?
???
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.06.2014, 20:46
Помогаю со студенческими работами здесь

Шаблон с переменной
Здравствуйте! подскажите пожалуйста.. Есть шаблон вида: #ifndef HEADER1_H #define HEADER1_H...

Приведение переменной типа object к переменной производного типа в приложенном коде
Добрый день! Столкнулся с проблемой. Есть обработчик события. Обработчик события общий для двух...

При присваивании символа unicode переменной типа char происходит выход за диапазон переменной
В программе при присваивании символа unicode переменной типа char происходит выход за диапазон...

Как из переменной вида Real достать целую часть и сделать её переменной порядкового типа?
В программе была переменная типа Real. Применил к этой переменной функцию Int(x) (возвращает целую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru