C++20 import

2023. 08. 11

C++ 20에서 추가된 import 

import <iostream>;

int main()
{
    std::cout << "Hello, World!" << std::endl;
    return 0;
}

기존에 사용하던 #include 전처리기를 대체하는 C++20의 신기능이라고 한다.

g++ 13버전을 이용하여 컴파일 했을 때 2가지의 오류를 만났다…

첫 번째는 import 기능을 사용할 수 없다는 에러 (아니,,, C++20 표준기능이라면서!)

두 번째는 <iostream> 모듈을 찾을 수 없다는 에러(….? 표준 라이브러리인데?)

첫 번째는 친절하게 해결 방법을 컴파일러가 알려준다. import를 사용하기 위해서는 -fmodules-ts 옵션을 사용할것

두 번째는 모듈을 찾을 수 없다는 건데… 스택오버플로를 조금 찾아보니 다음과 같은 방법으로 표준라이브러리를 컴파일된 모듈로 준비를 해야하는 것 같다.

> $ g++ -std=c++20 -fmodules-ts -xc++-system-header iostream
> $ g++ -std=c++20 -fmodules-ts -o hello helloworld.cc

iostream 모듈을 컴파일하고 나면 iostream을 import해서 사용하는 코드는 정상적으로 컴파일 되는 것을 확인할 수 있다.

ps. 예전엔 윈도우 VS에서 C++03 정도의 기능만 사용해서 이런 옵션 설정과 관련된 부분은 하나도 건들지 않았었는데, 시작부터 힘들다;;