우리는 지금 2020 년에 있으며 오랫동안 기다려온 C ++ 모듈 기능과 함께 C ++ 20이 나옵니다. 그러나 CppCon에 대한 몇 가지 이야기를 본 후 C ++ 모듈이 이상한 장소에 있다는 것을 알았습니다. 특히 Linux 패키지 관리자 (pacman, apt, emerge 등)에게는
내가 배운 것에서 C ++ 모듈은
- 컴파일러에 따라 다름
- Clang에서 GCC로 빌드 한 모듈을 사용할 수 없습니다
- GCC 9.1 모듈은 GCC 9.2에서 작동하지 않습니다
- 동일한 모듈의 여러 버전을 가질 수 있습니다
- 동일한 범위로 내 보내지 않는 한
- 종속성이 업데이트되면 모듈을 다시 작성해야합니다.
내 문제는 모든 롤링 릴리스 배포판에서 컴파일러가 항상 업데이트되고 사용자가 자체 컴파일러 빌드를 가질 수 있다는 것입니다. 현재 컴파일러를 업데이트하거나 update 할 수도 있습니다 libstdc++
. 그러나 모듈의 libstdc++
경우 컴파일러가 업데이트 될 때 업데이트되어야 한다고 제안 합니다.
컴파일러가 업데이트 할 때 패키지 관리자가 STL과 같은 업데이트를 어떻게 처리합니까? 모든 버전의 컴파일러에 대해 모든 버전의 STL 모듈을 빌드하는 것이 가능하다고 생각하지 않습니다. 사용자가 자체 STL 모듈을 구축하지 않아도됩니다.