Получение ссылки на bool из std :: vector <bool>
Я знаю, что это плохая привычка, но я бы хотел найти способ обойти эту проблему. У меня есть такой класс:
template <class T>
class A : std::vector<T> {
T& operator()(int index) { // returns a _reference_ to an object
return this->operator[](index);
}
};
Можно сделать такие вещи:
A<int> a{1,2,3,4};
a(3) = 10;
Но он перестает работать, если кто-то используетBOOL в качестве параметра шаблона
A<bool> a{true, false, true};
std::cout << a(0) << std::endl; // not possible
if (a(1)) { /* something */ } // not possible
std::vector<bool>
это специализированная версия вектора (http://www.cplusplus.com/reference/vector/vector-bool/) который не позволяет такие вещи.
Есть ли способ, как получить ссылку на логическую переменную из std :: Vector? Или любое другое решение?