У меня есть шаблонный класс, у которого есть член данных типа std::vector<T>
, где T также является параметром моего шаблонного шаблона.
В моем классе шаблона я имею довольно некоторую логику, которая делает это:
T &value = m_vector[index];
Это не похоже на компиляцию, когда T является логическим, потому что оператор [] из std::vector не возвращает ссылку bool, а другой тип.
Некоторые альтернативы (хотя мне они не нравятся):
- сообщите моим пользователям, что они не должны использовать bool в качестве параметра шаблона
- имеют специализацию моего класса для bool (но для этого требуется некоторое дублирование кода)
Не существует способа рассказать std::vector не специализироваться на bool?