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.