VC6.0 프로젝트를 VS2010으로 이전하다가, 코드는 아래와 같은데
이런 에러가 발생이 되었다.
STL의 vector를 사용하는데, 어짜피 이녀석도 array로 호출은 되지만,
포인터 레벨의 차이인지 에러를 출력한다.
흐음.. vector.begin() 역시 [0]과 같은 의미인것 같으나.. 여전히 템플릿은 머가먼지... OTL
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 |
'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 |