Форум программистов, компьютерный форум CyberForum.ru

Использование std::type_index - C++

Восстановить пароль Регистрация
 
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2133 / 966 / 222
Регистрация: 30.11.2013
Сообщений: 3,223
14.06.2016, 07:01     Использование std::type_index #1
Доброе утро,

облазил один игровой движок, там менеджеров ресурсов заполнен
C++
1
std::type_index
- как я понимаю для контейнеров, где лежат все ресурсы и индексируются по имени типа:
C++
1
2
3
4
5
6
Foo a;
Bar b;
addResource( &a );
addResource( &b );
std::map< std::type_index, BaseResource*>
m_arr.push_back( typeid(T), a );
Как вам такой способ Type erasure - и знаете ли вы еще крутые применения этой стандартной обёртки, да и typeid(T) в целом
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mr.X
Эксперт С++
 Аватар для Mr.X
2796 / 1572 / 246
Регистрация: 03.05.2010
Сообщений: 3,647
14.06.2016, 08:40     Использование std::type_index #2
Ну, если это map, то он сможет хранить только по одному ресурсу каждого типа. А где это вы видели push_back у мэпа?
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2133 / 966 / 222
Регистрация: 30.11.2013
Сообщений: 3,223
14.06.2016, 08:44  [ТС]     Использование std::type_index #3
Mr.X, там кстати еще нету функции main и вообще код не компилится.
avgoor
562 / 352 / 83
Регистрация: 05.12.2015
Сообщений: 1,137
14.06.2016, 13:22     Использование std::type_index #4
rikimaru2013, Имхается, должно быть как-то так:
C++
1
2
std::map<std::type_index, std::list<BaseResource*>> m;
m[typeid(...)].push_back(...);
Yandex
Объявления
14.06.2016, 13:22     Использование std::type_index
Ответ Создать тему
Опции темы

Текущее время: 00:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru