Мне недавно пришлось написать кучу неприятных std::enable_if
специализаций, чтобы правильно разобраться с vector<bool>
тем, что в противном случае было бы красивым и чистым дизайном. Существует some talk, чтобы удалить текущий vector<bool>
, который, должно быть, никогда не был, но в то же время я хотел бы иметь нормальный vector<bool>
, который является фактическим стандартным контейнером и который внутренне использует один массив булевых (std::deque
, таким образом, не является вариантом , поскольку его хранение не гарантируется непрерывным).мы можем создать нормальный вектор <bool> с использованием пользовательского распределителя?
В то время как можно было бы обернуть логическое, как, например, предложенное here, мне было интересно, можно ли также исправить vector<bool>
, предоставив пользовательский распределитель? Если да, то как это реализовать? И почему или почему бы это решение не было предпочтительнее обертывания булевского значения?
Вы просмотрели boost :: container :: vector? –