c++ modules
MSVCでのサポート
https://en.cppreference.com/w/cpp/compiler_support によるとMSVCでは19.28でサポートされている。
Visual Studioの設定
https://docs.microsoft.com/ja-jp/cpp/build/reference/experimental-module?view=msvc-170 に従い、 /std:c++20 experimental:module を指定する。
モジュールのエクスポート
拡張子はixx
export module mylib; namespace mylib { export int myfunc() { return 999; } export class myclass { public: int myfunc() { return 888; } }; };
呼び出し側
import mylib; ... std::cout << mylib::myfunc() << "\n"; mylib::myclass c; std::cout << c.myfunc() << "\n";