\
/
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0142r0.pdf
https://blogs.msdn.microsoft.com/vcblog/2015/12/03/c-modules-in-vs-2015-update-1/
https://blogs.msdn.microsoft.com/vcblog/2017/05/05/cpp-modules-in-visual-studio-2017/
2017년도에 들어 올려다 좀더 test 하고(TR) 들어옴, 아직 안 들어옴
cpp 하나 컴파일 할 때 헤더 파일 뒤져서 모두 복붙하고 컴파일 하는 무식한 방식...
Java나 C#처럼 메타데이터 유지해서 하나 바꿀때 마다 효과적으로 컴파일 함
C++17까지도 여전히 C++ 표준으로 들어오지 않음
허나 비주얼 스튜디오에서 /experimental:module 플래그를 활성화해서 사용할 수 있음
표준이 된다면
여전히 앞에 시련이 놓여 있음
Ex) 과거의 코드
// Math.h
int Add(int a, int b)
// Math.cpp
int Add(int a, int b)
{
return a + b;
}
// main.cpp
#include "Math.h"
int main()
{
std::cout << Add(1,2) << std::endl;
}
[Math.cpp], [Math.h] 컴파일!!!
main.cpp 컴파일!!!
링킹
Ex) 모듈을 사용한 코드
// Math.ixx
module Math;
export int Add(int a, int b)
{
return a + b;
}
// main.cpp
import Math;
int main()
{
std::cout << Add(1,2) << std::endl;
}