Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Try C++ module! - meetup app osaka@5

Try C++ module! - meetup app osaka@5

Akiko Kawai

January 29, 2021
Tweet

More Decks by Akiko Kawai

Other Decks in Programming

Transcript

  1. / Try C++ module! Try C++ module! 2021/1/30 Sat meetupapp

    osaka @5 遥佐保(はるかさお) 
  2. / C++20 modules C++20 modules C++20 で新たに導⼊される module … #include

    の代替え⼿段とのことで期待⼤です… これまでのC++のコードの構造と アーキテクチャに ⼤きな影響を与える機能なんじゃ ないかな〜と思います 
  3. / moduleファイルのサンプル // moduleファイル // 拡張子はなんでも良いけどVC++的には .ixxとしてるみたい // 他のサンプルだと .cppm

    が多そう // モジュール名を定義し、それをインポートできるようにします export module NumberCruncher; // module内部で他のmoduleもinport出来る import logger; // module内のマクロは公開されない(汚染がない) #define CRUNCH_FACTOR 3.14 
  4. / moduleファイルのサンプル(続き) namespace numbers { // ↓↓↓明示的にexportされてないので、import側では利用できない float applyCrunchFactor(float number)

    { return number * CRUNCH_FACTOR; } // exportキーワードを書いて、importで利用できるようにする // (これは実装をここに書いてるパターン、他のファイルに実装を分割もできる) export float crunch(float number) { // 内部関数を利用 auto crunched = applyCrunchFactor(number); // 他のmoduleの関数を利用 logger::info("Crunched {} with result of {}", number, crunche return crunched; } } 
  5. / 参考 C++20 in 2020: Modules - Inside PSPDFKit   Current

    Status - isocpp A Tour of C++ Modules in Visual Studio - C++ Tema Blog https://pspdfkit.com/blog/2020/cpp20-in-2020- modules/ https://isocpp.org/std/status https://devblogs.microsoft.com/cppblog/a-tour-of- cpp-modules-in-visual-studio/ 
  6. / C++ のモジュールの概要 - Microsoft Docs モジュール - cpprefjp [C++]モジュール理論

    基礎編 - 地⾯を⾒下ろす少年 の⾜蹴にされる私 https://docs.microsoft.com/ja-jp/cpp/cpp/modules- cpp?view=msvc-160 https://cpprefjp.github.io/lang/cpp20/modules.html https://onihusube.hatenablog.com/entry/2019/07/07   