Programming/C++ STL2010. 9. 13. 14:02
VC6.0 프로젝트를 VS2010으로 이전하다가, 코드는 아래와 같은데
std::vector<vectoriter>::iterator iter;
            vectoriter *pch = iter;

이런 에러가 발생이 되었다.
 error C2440: '초기화 중' : 'std::_Vector_iterator<_Myvec>'에서 'vectoriter *'(으)로 변환할 수 없습니다.

STL의 vector를 사용하는데, 어짜피 이녀석도 array로 호출은 되지만,
포인터 레벨의 차이인지 에러를 출력한다.
The usual way is &v[0]. (&*v.begin() would probably work too, but I seem to recall there's some fluffy wording in the standard that makes this not 100% reliable)

[링크 : http://stackoverflow.com/questions/1388597/stdvector-and-c-style-arrays]

 vectoriter *pch = &iter[0]; // no error
 vectoriter *pch = &iter; // error
흐음.. vector.begin() 역시 [0]과 같은 의미인것 같으나.. 여전히 템플릿은 머가먼지... OTL

'Programming > C++ STL' 카테고리의 다른 글

C++ 레퍼런스 변수(reference variable)  (4) 2010.09.15
C++0x  (0) 2010.09.15
스마트 포인터(smart pointer)  (2) 2010.09.09
C++ 강좌/문법/reference  (4) 2010.09.09
STL 그리고 Template  (0) 2010.09.09
Posted by 구차니