0 / 0 / 0
Регистрация: 01.11.2019
Сообщений: 16
|
|||||||||||
1 | |||||||||||
In template: no viable overloaded '='01.07.2021, 19:43. Показов 5592. Ответов 4
У меня следующий код
При попытке указать какую то значение или переменную получаю ошибку " In template: no viable overloaded '=' ".
Подскажите в чем моя ошибка?
0
|
01.07.2021, 19:43 | |
Ответы с готовыми решениями:
4
error: no viable overloaded '+= Call of overloaded template function is ambiguous Ошибки: 1) use of class template requires template argument list 2) 'T' : undeclared identifier Template definition of non-template при использовании частичной спецификации шаблонов |
фрилансер
5497 / 5093 / 1047
Регистрация: 11.10.2019
Сообщений: 13,337
|
||||||
01.07.2021, 21:24 | 2 | |||||
kamewek, вот так получается
1
|
Вездепух
11694 / 6373 / 1723
Регистрация: 18.10.2014
Сообщений: 16,057
|
|
06.07.2021, 19:16 | 3 |
Эта функция неработоспособна. Что такое "движок ECS паттерна"? Кто писал этот "движок"?
Точнее, эта функция может быть работоспособной, но только при правильном components . А у вас - неправильный. Где объявление components ? Почему вы не привели его в вопросе?Добавлено через 32 минуты Нет, использовать имя в качестве ключа не допускается - никаких гарантий по поводу имени не дается. Класс std::type_info сам по себе уже прекрасно подготовлен для использования в качестве ключа (см. before , hash_code и операторы сравнения на равенство). Надо только написать соответствующие функторы сравнения для контейнера. И помнить, что std::type_info некопируем, т.е. хранить нужно указатели или ссылки, а не копии.
1
|
610 / 415 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
|
|
08.07.2021, 22:39 | 4 |
kamewek, есть стандартный класс std::type_index (начиная с С++11). Он как раз для таких целей вместо std::type_info.
1
|
Вездепух
11694 / 6373 / 1723
Регистрация: 18.10.2014
Сообщений: 16,057
|
|
08.07.2021, 23:38 | 5 |
... и, учитывая, что
std::type_index является неявно преобразовываемым из std::type_info , изначальный вариант кода может быть "спасен" просто путем указания std::type_index в качестве ключевого типа в map.Альтернативный вариант, который я имел в виду в своем ответе - это указание std::reference_wrapper<std::type_info> в качестве ключевого типа. Но тогда придется самому дописывать функторы сравнения или хеширования...
0
|
08.07.2021, 23:38 | |
08.07.2021, 23:38 | |
Помогаю со студенческими работами здесь
5
'MyQueue' : use of class template requires template argument list В чем различие template <typename T> от template <class T> ? Ошибка компиляции: template-id does not match any template declaration Visual Studio выдаёт ошибку при вынесении объявления функции с template в .h файл. Без template всё работает MSVC и template template classes Ошибка с django.Template.Template Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |