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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
rikimaru2013
C++ Game Dev
2419 / 1113 / 240
Регистрация: 30.11.2013
Сообщений: 3,661
#1

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

14.06.2016, 07:01. Просмотров 282. Ответов 9
Метки нет (Все метки)

Доброе утро,

облазил один игровой движок, там менеджеров ресурсов заполнен
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) в целом
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2016, 07:01     Использование std::type_index
Посмотрите здесь:

Не воспринимает ни std::cout, ни std::cin. Вобщем ничего из std. Также не понимает iostream - C++
Здравствуйте! Я хотел начать изучать язык C++. Набрал литературы. Установил Microsoft Visual C++ 2005 Express Edition. Образ диска...

Использование std::system() - C++
компилирую в студии 2010. система win7. #include &lt;Windows.h&gt; int main() { int i=0; while(i&lt;1) { ...

Использование std::unique_ptr - C++
Есть в коде подобная конструкция, вылетает исключение на этапе очистки памяти. С чем это может быть связано? template &lt;typename T&gt; class...

Использование std::is_nothrow_default_constructible - C++
Здравствуйте! Я использую базовый класс в качестве создателя интерфейса синглтона, и мне необходимо передать в качестве шаблонного...

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri - C++
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

Использование std::array внутри пользовательского класса - C++
Здравствуйте! Я создал класс, одним из полей которого является массив std::array, однако компилятор ругается на константу, что задаёт...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mr.X
Эксперт С++
3048 / 1693 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
14.06.2016, 08:40     Использование std::type_index #2
Ну, если это map, то он сможет хранить только по одному ресурсу каждого типа. А где это вы видели push_back у мэпа?
rikimaru2013
C++ Game Dev
2419 / 1113 / 240
Регистрация: 30.11.2013
Сообщений: 3,661
14.06.2016, 08:44  [ТС]     Использование std::type_index #3
Mr.X, там кстати еще нету функции main и вообще код не компилится.
avgoor
884 / 519 / 112
Регистрация: 05.12.2015
Сообщений: 1,464
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(...);
Bretbas
189 / 48 / 7
Регистрация: 05.08.2013
Сообщений: 772
Завершенные тесты: 1
20.06.2017, 20:47     Использование std::type_index #5
rikimaru2013,Mr.X, avgoor, Безопасно ли использовать обертки, такие как std::type_index и std :: type_info, которые работают со старым оператором typeid из <typeinfo>? Где-то читал, что на разных машинах разные результаты можно получить.
Peoples
1142 / 646 / 418
Регистрация: 06.02.2016
Сообщений: 1,681
Записей в блоге: 11
Завершенные тесты: 4
20.06.2017, 20:51     Использование std::type_index #6
Лучше использовать Boost.Typelndex
gray_fox
What a waste!
1446 / 1175 / 61
Регистрация: 21.04.2012
Сообщений: 2,463
Завершенные тесты: 3
20.06.2017, 22:18     Использование std::type_index #7
Цитата Сообщение от Bretbas Посмотреть сообщение
Где-то читал, что на разных машинах разные результаты можно получить.
Скорее на разных разных компиляторах.
Bretbas
189 / 48 / 7
Регистрация: 05.08.2013
Сообщений: 772
Завершенные тесты: 1
21.06.2017, 16:28     Использование std::type_index #8
Так Вы не ответили, безопасно ли использовать такие вещи как typeid и тд на c++?
gray_fox
What a waste!
1446 / 1175 / 61
Регистрация: 21.04.2012
Сообщений: 2,463
Завершенные тесты: 3
21.06.2017, 16:37     Использование std::type_index #9
Цитата Сообщение от Bretbas Посмотреть сообщение
безопасно ли использовать такие вещи как typeid и тд на c++?
Если собирать всё одним компилятором, то проблем быть не должно, насколько я знаю.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.06.2017, 17:14     Использование std::type_index
Еще ссылки по теме:

STL std::set, std::pair, std::make_pair - C++
Я не знаю как описать тему в двух словах, поэтому не обращайте внимание на название темы. Собственно перейдем к нашим баранам: есть...

Разобраться почему не компилируется код (использование std::bitset) - C++
У меня не компилируется этот код. Где Ошибка? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace...

(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const& - C++
astxx::manager::connection::connection(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, unsigned short); ...

error C2886: std::cout: использование символа в "using"-объявлении члена не допускается - C++
подскажите плз что ето может бить...если не подключаю файл Nokia.h тогда всьо норм.. #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include...


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

Или воспользуйтесь поиском по форуму:
Bretbas
189 / 48 / 7
Регистрация: 05.08.2013
Сообщений: 772
Завершенные тесты: 1
21.06.2017, 17:14     Использование std::type_index #10
спасибо
Yandex
Объявления
21.06.2017, 17:14     Использование std::type_index
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru