std :: vector <bool>은 어떻게 생겼습니까?


15

오늘날 거의 모든 C ++ 개발자 std::vector<bool>는 컨테이너가 아니라고 생각하기 때문에 실수 였다는 것에 동의 std::bitset합니다.

표준에 어떻게 투표 했습니까? 당시 논란이 있었습니까? 주요지지 주장은 무엇입니까?


std::vector전에 쓰지 않았습니까 std::bitset?
— dan04


3
또한 Herb Sutter는 std::vector<bool> 여기 와 여기 에 대해 광범위하게 씁니다 . 그의 글을 좀 더 자세히 살펴보면 필요한 모든 정보를 찾을 수있을 것입니다.
— Robert Harvey

답변:


10

인용 된 참조를 사용하여 Herb Sutter에서 :

프록시 컨테이너를 작성하는 방법의 예를 제공하기 위해 벡터 전문화를 의도적으로 표준에 적용했습니다. "프록시 컨테이너"는 객체를 직접 얻지 못하는 컨테이너입니다. 프록시 된 컨테이너는 포함 된 객체에 대한 포인터 나 참조를 제공하는 대신 포함 된 객체에 간접적으로 액세스하거나 조작하는 데 사용할 수있는 프록시 객체를 제공합니다. 프록시 된 컬렉션은 컬렉션 내의 개체가 마치 메모리에있는 것처럼 항상 직접 안정적으로 액세스 할 수없는 경우에 유용합니다. 필요합니다. 아이디어는 그러한 프록시 컬렉션이 "컨테이너"의 요구 사항을 충족시키는 방법을 보여주는 것이 었습니다.

그렇습니다. 당시에는 토론이있었습니다.

  1. 모든 세부 사항을 보려면 DejaNews로 이동하여 Subject = "vector and bool"및 Forum = " c ++ "에 대한 강력한 검색을 수행하십시오 . 토론은 1997 년 1 월 / 2 월에 열렸습니다. 또한 벡터 전문화 기능을 해제하는 방법을 묻는 사람들의 최근 토론도 있습니다. 내 조언은이 기사의 끝 부분을 참조하십시오.

나머지는 역사이다. 그리고 나는 좋은 링크가있는 대답없는 질문을 보는 것을 싫어합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.