|
질문을 올린주제에 새로운 문제거리를 만들고 싶진 않습니다만 확실히 하기 위해..
표준으로 제정된 #include 전처리 지시자의 식별자 형식이 헤더 확장자까지 지시하고 있는 것은 아니라고 생각합니다.
단적인 예로 stdio 라는 확장자 없는 헤더파일은 없지만 #include <stdio> 로 포함시키면 stdio.h 파일이 지정되어 삽입되게 됩니다. .hpp 파일을 볼때에 이것이 단지 호환을 위한 배려인지 전처리기 스펙에서 권유하는 것인지 모르겠지만 적어도 .h 파일과 확장자 없는 파일과의 구분이 없는 것은 확실합니다.
더군다나 bcc32.cfg 파일을 보면 아시겠지만 ${BCB}\include\Stlport 은 검색경로에 포함되어 있지도 않습니다. 게다가 빌더IDE 상에서 <iostream> 위치에서 Ctrl + Enter 로 직접 지정된 파일로 이동해봐도
#include <iostream>
이 문장이 /include/iostream.h 를 가리키고 있는 것이지 include/Stlport/iostream 을 지정하고 있는 것이 아님은 자명합니다. 먼저번 댓글에도 설명드렸듯이 iostream.h 내의 #ifdef 지시자로 옛버젼인 Rogue Wave 사의 stl 과 신버젼인 stlport 의 것을 구분하여 /oldstl 또는 /stlport 의 것을 지정하여 주고 있는 것입니다. 이것은 iostream 뿐만 아니라 /include 내의 모든 stl 헤더파일이 마찬가지입니다.
그럼에도 불구하고 위의 문장이 include/Strlport/iostream 을 직접 가리키고 있다고 말씀하시는 근거가 궁금합니다.
물론 그렇게 된다면 제가 제기한 질문에 대한 명료한 해답이 되겠지만 별다른 설명을 주시지 않았기 때문에 근거가 빈약하다고 생각합니다.
그럼 답변을 기다리며..
감사합니다.
|