Ответ 1
Я не думаю, что когда-либо было фактическое решение исключить итераторы из битового набора.
Скорее, битсет - это один из классов, который предшествует предложению о добавлении исходной стандартной библиотеки шаблонов в стандарт С++. Когда он был спроектирован, по существу ни одна из стандартных библиотек не включала итераторы.
Затем была предложена библиотека Степанова для добавления, и совсем немного было принято. В ответ на это были добавлены некоторые существующие классы (например, std::string
), чтобы они могли использоваться как новые классы контейнеров.
Все это происходило довольно поздно в процессе стандартизации, хотя на самом деле они уже согнули правила в нескольких местах, чтобы добавить то, что они сделали. Среди прочего, примерно в то же время, когда контейнеры/итераторы/алгоритмы были добавлены в библиотеку, комитет проголосовал за рассмотрение стандартной "функции законченной", поэтому с этого момента они будут работать только на исправление ошибок и т. не добавляя новые функции.
Таким образом, даже если бы было добавлено предложение добавить интерфейс итератора к bitset
, то единственным способом, который комитет мог бы принять, было бы рассматривать это как исправленную ошибку, а не новую функцию, являющуюся добавлено. Если бы имелось действительно прочное предложение, я полагаю, что они могли бы это сделать, но я не думаю, что было такое предложение, и это было бы растягивать точку совсем немного, поэтому даже действительно хорошее предложение могло бы легко были отклонены.
С тех пор было одно предложение LEWG 1112, которое добавило бы интерфейс итератора к std::bitset
. Это было предложено для С++ 11 и было предложено специально для поддержки цикла на основе диапазона for
, который также был добавлен в С++ 11. Она понесла довольно позорную судьбу: она была первоначально принята, и была составлена формулировка. Тогда было похоже, что предложение о добавлении концепций на язык будет принято, поэтому эта формулировка была переписана для использования блестящих, замечательных новых концепций. Спустя некоторое время концепции были исключены из языка и вместо того, чтобы переформулировать предложение, чтобы оно больше не зависело от концепций, они условно обозначили его как "НАД-Будущее", что означает, что они рассматривали его как не являющийся дефектом и отложили дальнейшую работу пока некоторое (неопределенное) время в будущем (и, насколько я могу видеть, не пересматривал его с тех пор).