Rodhos Soft

備忘録を兼ねた技術的なメモです。Rofhos SoftではiOSアプリ開発を中心としてAndroid, Webサービス等の開発を承っております。まずはご相談下さい。

チュートリアル2

さらに簡単な例

#include <rxcpp/rx.hpp>


rxcpp::observable<std::string> twice(std::string word) {
    return rxcpp::observable<>::just(word + word);
}

rxcpp::observable<int> length(std::string word) {
    int l = (int)word.length();
    return rxcpp::observable<>::just(l);
}
rxcpp::observable<std::string> times(std::string word, int times) {
    auto r = word;
    for (int i=0;i<times;i++) {
        r = r + word;
    }
    return rxcpp::observable<>::just(r);
}

void useRxCpp() {
    auto ob = rxcpp::observable<>::just("poi")
    .flat_map([=](std::string word){
        return length(word);
    }).as_dynamic()
    .flat_map([=](int length){
        return times("hoge", length);
    }).as_dynamic()
    .flat_map([=](std::string word) {
        return twice(word);
    }).as_dynamic();
    
    ob.subscribe([=](std::string word) {
        std::cout << word << std::endl;
    });
}