대리자 클래스1 auto가 원치 않은 형식으로 연역될 때에는 명시적 형식의 초기치를 사용 auto가 원치 않는 형식으로 연역되는 예가 있다. std::vector features(const Widget& w); Widget w; bool highPriority = features(w)[5]; processWidget(w, highPriority); 위 코드에서는 정상적으로 작동한다. 하지만 highPriority를 auto로 대체하면 상황은 달라진다. std::vector의 operator[]가 돌려주는 것은 한 요소에 대한 참조가 아니라 std::vector::reference 형식의 객체이다. std::vector::reference가 존재하는 것은, std::vector이 자신의 bool들을 bool당 1비트의 압축된 형태로 표현하도록 명시되어 있기 때문이다. 그렇기 때문에 operat.. 2020. 6. 28. 이전 1 다음