2013-02-16 3 views
2

아래 코드에서 반복기 헤더를 포함하지 않고 insert_iterator를 만듭니다. 어떻게 컴파일 할 수 있습니까? 나는 c/C++에 익숙하지 않기 때문에 이것은 아마 까다로운 설명을 할 것이다.C++ : #include없이 insert_iterator를 만듭니다. <iterator>

#include <list> 
//#include <iterator> 

int main() 
{ 

    std::list<int> mylist(10,1); 
    std::insert_iterator<std::list<int> > it(mylist,mylist.begin()); 

    return(0); 
} 

답변

7

귀하의 경우 다른 헤더의 일부, <list>이뿐만 아니라 <iterator>를 당겨 때문에 컴파일 발생합니다. 이는 하나의 구현에서는 잘 작동하지만 다른 라이브러리에서는 실패하거나 현재 라이브러리 구현의 다음 버전에서도 실패 할 수 있습니다.

항상 사물을 정의하는 헤더를 포함시켜 모든 곳에서 컴파일되도록하십시오. 다른 표준 헤더에서 가져온 표준 헤더에 대한 보장이 있지만 이러한 예외 중 하나라고 생각하지 않습니다.

+0

안녕하세요 K-ballo. 나는 목록 iterator를 포함해야합니다. 교훈은 ... – jorgez

+0

@ jorgez : 그냥 기억해, 당신은 그것에 중계 할 수 없습니다. –