책 정리/Effective STL

항목 6 : C++ 컴파일러의 어이없는 분석 결과를 조심하자.

최익필 2008. 7. 13. 13:33
STL 컨테이너에게만 국한된 이야기가 아니니 소스코드로 컴파일러가 어떻게 해석하는지 추측해 보자.

소스 코드를 보면 알겠지만 (i) 가 좀 생소하다. 컴파일러는 (i) 에서의 () 는 생략해 버린다. 하지만 함수의 매개변수로 () 는 좀 다른 의미를 가지고 있다. 소스 코드로 대신 한다.

.. 그렇다 컴파일러는 "함수 매개변수로 () 로 주게 되면, .. 함수의 포인터가 인자네~"라고 인식한다! 그렇기 때문에.. 아래 코드는 list<int>를 반환하는 data명의 함수 선언으로 인식한다.

여담으로
혹시 ifstream 사용법 아시는분은, 좀 알려 주세요.. MSVC2005 입니다.

2008/07/27 20:41 추가 : fstream 헤더파일에 약간 문제가 있었다.(아마도 보는 중에 오타 난 듯)


관련링크
http://lagoons.net/tt/574 .. 왜 트랙백 발송이 안되지..