FTXUI 6.1.9
C++ functional terminal UI.
Loading...
Searching...
No Matches
C++20 Modules
Warning
この機能はまだ開発中であり、APIは将来のリリースで変更される可能性があります。 FTXUIにおけるC++モジュールの互換性と使いやすさの向上にご協力をお願いします。 何か問題に遭遇した場合や提案がある場合は、issueをオープンしてください。

FTXUIは、コンパイル時間の短縮とコード構成の改善のために、C++20モジュールを実験的にサポートしています。ライブラリの各部分は対応するモジュールを持ち、各ヘッダーごとにパーティションに分割されています。

C++20モジュールを提供するためにFTXUIプロジェクト自体をビルドするには、FTXUI_BUILD_MODULESオプションを使用します。例えば、CMakeとNinjaを使用する場合:

cmake \
-DCMAKE_GENERATOR=Ninja \
-DFTXUI_BUILD_MODULES=ON \
..
ninja
Note
モジュールを使用するには、C++≥20互換コンパイラ、CMakeバージョン3.20以降、およびNinjaのような互換性のあるジェネレータが必要です。Makefileジェネレータは**モジュールをサポートしていません**のでご注意ください。

次に、ご自身のコードでモジュールを通常通り使用できます。

import ftxui;
using ftxui::Button;
int main() {
auto screen = ScreenInteractive::TerminalOutput();
auto button = Button("Click me", screen.QuitClosure());
screen.Loop(button);
return 0;
}
ScreenInteractive はイベントを処理し、メインループを実行し、コンポーネントを管理できる Screen です。
FTXUIのすべてのサブモジュールを再エクスポートするモジュールファイルです。

ftxui`コンビニエンスモジュールは、すべてのモジュールをまとめるだけのものです。

export import ftxui.component;
export import ftxui.dom;
export import ftxui.screen;
export import ftxui.util;
FTXUIコンポーネント操作用モジュールファイルです。
FTXUI DOM操作用モジュールファイルです。
FTXUIスクリーン操作のためのモジュールファイル。
FTXUIユーティリティ操作用のモジュールファイル。

必要に応じて、必要なモジュールのみをインポートすることもできます。

CMakeでモジュールを適切に見つけてリンクするには、target_link_librariesを使用して適切なコンパイラ、リンカなどのフラグを取得します。

target_link_libraries(my_executable
#...whatever...
PRIVATE ftxui::modules
)

モジュールリスト

モジュールは、対応するヘッダー、またはより便利なインターフェースを提供するための関連ヘッダーのグループを直接参照します。以下のモジュールが利用可能です。

  • ftxui
    • ftxui.component
    • ftxui.dom
    • ftxui.screen
    • ftxui.util