BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Reactive Extensions for C++の紹介

Reactive Extensions for C++の紹介

原文(投稿日:2013/12/20)へのリンク

Rx.cppとしても知られるReactive Extensions for C++が、WinRTでも(C++/CXを使って)、OS Xでも(clangを使って)利用できるようになった。まだ初期段階だが、最後のプレビュー以来、多くの仕事がなされている。

スケジューリングはReactive Extensionsの基盤だ。WindowsのHWNDメッセージループに特化したものも含めて、このリリースでは5つのスケジューラが利用できる。

  • Immediate
  • CurrentThread
  • EventLoop
  • NewThread
  • Window

OrderBy、ForEach、Using、Scan、Throttle、TakeUntil、Skip、SkipUntil、ToVector、ToList、Zip、Concat、CombineLatest、Merge、ToAsyn、Using、ConnectableObservable、Multicast、Publish、PublishLast、RefCount、ConnectForever、SubscribeOn、ObserveOnといった「STLアルゴリズムの非同期等価」なオペレータは、Rx開発者にとっておなじみだろう。

BindCommand、DeferOperation、CoreDispatcherScheduler、FromEventPattern、FromAsyncPattern、ReactiveCommandはWinRTのC++/CXに特有なものだ。最後のReactiveCommandはPaul Betts氏のReactiveUIに由来する。

以下に、RangeからObservableを生成する例を示す。

//Declare an observable

auto values1 = rxcpp::Range(1, 10);

rxcpp::from(values1)

.for_each(

[](int p) {

cout << p << endl;

});

Rx.cppのソースコードはCodePlexからApache License 2.0ライセンスで利用できる。

この記事に星をつける

おすすめ度
スタイル

BT