BT

Introducing Reactive Extensions for C++

by Jonathan Allen on Dec 20, 2013 |

Reactive Extensions for C++, also known as Rx.cpp, is now available for WinRT via C++/CX and OS X via clang. While still in its early stages, a lot of work has been done since the last preview.

Scheduling is a cornerstone of Reactive Extensions. In this release there are five available schedulers including one specifically for Windows’ HWND message loops.

  • Immediate
  • CurrentThread
  • EventLoop
  • NewThread
  • Window

The operators, which are the “async equivalent of STL algorithms” will be familiar to Rx developers: OrderBy, ForEach, Using, Scan, Throttle, TakeUntil, Skip, SkipUntil, ToVector, ToList, Zip, Concat, CombineLatest, Merge, ToAsync, Using, ConnectableObservable, Multicast, Publish, PublishLast, RefCount, ConnectForever, SubscribeOn, ObserveOn.

Special for C++/CX on WinRT are BindCommand, DeferOperation, CoreDispatcherScheduler, FromEventPattern, FromAsyncPattern and ReactiveCommand. The last one comes from Paul Betts’ ReactiveUI.

Here is an example of creating an observable from a range:

//Declare an observable

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

rxcpp::from(values1)

.for_each(

[](int p) {

cout << p << endl;

});

The source code for Rx.cpp is available on CodePlex under the Apache License 2.0 license.

Hello stranger!

You need to Register an InfoQ account or to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2013 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT