Если вы уже установили правильную платформу Android SDK Platform Tools (Build Tool), и вы все равно получите сообщение об ошибке, попробуйте сделать недействительным кеш; Файл -> Недействительные кеши / Перезапуск ....
Есть ли способ получить ссылку на логическую переменную из std :: Vector?
blockquote>No.
Или любой другой решение?
blockquote>Вернуть
typename std::vector<T>::reference
вместоT&
. Дляbool
он вернет тип прокси-объекта вектора;Или специализируйте
A<bool>
, чтобы использовать что-то, кромеvector<bool>
.Или используйте какой-либо другой тип (возможно,
char
, или простой класс, обертывающийbool
) вместоbool
.
Вы нажимаете проклятие специализации поддельного контейнера.
Это подтвержденная ошибка дизайна, которую стандарт продолжает распространять, поэтому вам нужно специализировать свой шаблон, чтобы избежать стандартной специализации.
Используйте std::vector<mybool>
с struct mybool{bool value;};
или некоторые из них по вашей специализации (и проклинайте упрямый комитет за то, что он не ускоряет его и не отменяет их ошибку).
В качестве альтернативы просто верните std::vector<T>::reference
вместо T&
. (Воздерживаться, если это возможно, не размножайте эту бородавку) (Не забудьте проклятие)