본문 바로가기

Library/C/C++

boost 라이브러리를 사용할 때 주의할 점 하나

boost 라이브러리를 모른다면 그 사람은 C/C++ 개발자 간판 내려야 할 사람이다. 그런데, 그 boost 라이브러리를 사용할 때 주의할 점이 하나 있다면, 바로 헤더 파일이다. 대단한 것은 아니다. boost 라이브러리의 헤더파일 확장자는 .hpp라는 것이다.

사실, 이것은 역사적인 이유가 존재하는데, C++의 표준 라이브러리의 확장자는 존재하지 않는다. 표준안 이전의 라이브러리라면 iostream.h겠지만, 98년에 제정된 1.0 표준에서의 표준 라이브러리 확장자는 없다. 여기에 대해서 표준화 의원회에서도 많은 의견이 있었다. 이미 헤더 파일을 포함하겠다는 #include라는 지시자를 사용했는데, 또 확장자를 명시할 필요가 있는가라는 의견이 대세를 이루어 확장자를 삭제했다고 한다. 그보다는 하도 여러 의견들이 합의에 이르지 못했서 아예 삭제해버렸다는게 정설처럼 받아들여지는 루머지만.

이 문제 외에도, 몇가지 기능들을 표준안에 추가하고자 의견을 제시한 그룹이 있었지만 자신들의 의견이 받아들여지지 않자 boost라는 단제를 만들어 자신들이 애초에 표준안에 넣고자 했던 기능들을 공개하기 시작한게 boost의 시작이다.

시간이 지나자 boost는 표준화하기 전, 기능을 시험해보고 의견을 수렴하는, 선행적인 훌륭한 기능들의 구현 및 테스트로 라이브러리로서 아주 훌륭한 역할을 수행하기 시작했다. 물론, 이 .hpp라고 헤더 파일을 정의하는 것도 이들이 표준안에서 받아들여지지 않았던 역사적 문제였다. :)


그래서, boost 라이브러리를 #include 했을 때 그런 파일 없다고 나와서 당황스러웠던 기억이 있다면, 반드시, boost 헤더파일들은 확장자가 .hpp로 끝난다는 것을 기억해두도록. 경로를 재설정하기 전에 다시 한번 확인해보라. 특히, Visual C++을 설치했다면 .hpp 파일은 확장자가 보이지 않아서 눈치채기 힘들다. 그런데, Visual C++ 2008의 디폴트 C++ 파일 확장자도 .cc이니, 이 문제는 언제나 합의를 볼지 모를 일이다.