1. C++ 20
- Visual Studio의 C++20 환경에서 표준 라이브러리 모듈을 import하는 방법으로 MS에선 헤더 유닛(header units)을 권장
1.1. 프로젝트 생성
프로젝트 이름: Cpp20

1.2. 예제 코드 생성
main.cpp
1 2 3 4 5 6 7 8import <iostream>; int main() { std::cout << "Hello World!" << std::endl; return 0; }HeaderUnits.h
1 2 3#pragma once import <iostream>;
1.3. 언어 표준 설정
프로젝트 속성 > 일반 > C++ 언어 표준: ISO C++20 표준 (/std:c++20)

1.4. 헤더 단위 컴파일 설정
HeaderUnits.h 속성 > 일반 > 항목 형식: C/C++ 컴파일러
설정 후 적용 클릭

C/C++ > 고급 > 컴파일 옵션: C++ 헤더 단위로 컴파일(/exportHeader )

1.5. 설정 확인
- f5를 눌렀을 때 Hello World! 출력 →
iostreamimport 성공 - 다른 표준 라이브러리 모듈이 필요하면 해당 모듈을 HeaderUnits.h에 추가
2. C++ 23
- C++ 23에선 표준 라이브러리를 import할 수 있는 named 모듈(
std,std.compat) 제공
2.1. 프로젝트 생성
프로젝트 이름: Cpp23

2.2. 예제 코드 생성
main.cpp
1 2 3 4 5 6 7 8import std; int main() { std::cout << "Hello World!" << std::endl; return 0; }
2.3. 언어 표준 설정
프로젝트 속성 > 일반 > C++ 언어 표준: 미리 보기 - 최신 C++ 초안의 기능(/std:c++latest)

2.4. 표준 라이브러리 모듈 빌드 설정
C/C++ > 언어 > ISO C++ 23 표준 라이브러리 모듈 빌드: 예

2.5. 설정 확인
- f5를 눌렀을 때 Hello World! 출력 →
stdimport 성공 - STL 라이브러리의 std namespace 내에 있는 모든 함수 사용 가능
- import
std.compat→ std namespace 내의 함수 뿐만 아니라 C 표준 라이브러리의 전역 namespace 함수도 사용 가능
3. 참고 자료
- https://learn.microsoft.com/en-us/cpp/build/compare-inclusion-methods?view=msvc-170
- named 모듈 import가 헤더 유닛보다 빠르다
- named 모듈은 내부 구현과 매크로를 외부로 노출하지 않는다
- C++ 23 사용할 수 있다면 named 모듈 사용 권장
- https://learn.microsoft.com/en-us/cpp/cpp/tutorial-import-stl-named-module?view=msvc-170
- https://en.cppreference.com/w/cpp/standard_library#Importing_modules
- 전문가를 위한 C++ 5판