지정한 디렉토리에 있는 파일 목록들을 출력하는 프로그램입니다.
#include <iostream>
#include <boost/filesystem.hpp>
using namespace boost::filesystem;
using namespace std;
int main(int argc, char **argv)
{
path p(argv[1]);
for(directory_entry& x : directory_iterator(p))
cout << "file : " << x.path() << endl;
return 0;
}
아주 잘 작동합니다. 그런데 궁금한게 구간for문 내에서 &x에 directory_iterator(p)이 가리키는 값들을 하나씩 대입해서 아래 줄을 실행하잖아요.
그래서 당연히 클래스끼리 하는거니까 directory_iterator 클래스 안에 const directory_entry operater->() 이런식으로 된 연산자가 정의되어 있을줄 알았는데..
저기엔 제 예상과는 다르게 반환값이 directory_entry* 로 되어있네요?
제가 operator를 잘못 이해하고 있는걸까요? 아니면 구간for문을? 아니면 * &const같은 것들을?
그리고 글쓰다가 생각났는데.. directory_iterator 클래스 안에 선언된 directory_entiry이 포인터로 선언된거일까요?