gpt4 book ai didi

c++ - C++ 中的 RxCpp 响应式扩展

转载 作者:行者123 更新时间:2023-11-30 04:09:13 25 4
gpt4 key购买 nike

我有一个 Win32 控制台应用程序,我已经导入了对 Rx 的引用。 Intellisense 允许我这样做....

using namespace System::Reactive;
using namespace System::Reactive::Concurrency;
using namespace System::Reactive::Disposables;
using namespace System::Reactive::Joins;
using namespace System::Reactive::Linq;
using namespace System::Reactive::PlatformServices;
using namespace System::Reactive::Subjects;
using namespace System::Reactive::Threading;
using namespace System::Reactive::Threading;
using namespace System::Data::Linq;
using namespace System::Xml::Linq;

然后我有许多可用的类,例如 ISubject/Subject 和 IObserver/Observer。但是没有 IObservable。我对缺少 Rx with Cpp 的文档感到有点震惊。我是否缺少任何明显的资源?

我尝试过 Channel9、Google、Stackoverflow 和 Facebook 群组。这是我制作的工作 C# 代码,我想让它与 C++ 一起工作。此函数合并来自不同观察来源的所有数据,并将其作为列表输出。

所以矩阵一从源一出现,矩阵二从源二出现。它们通过 id 进行匹配,并作为列表一起被推送。

public static IObservable<IList<TSource>> MergeById<TSource>(this IObservable<TSource> source, Func<IList<TSource>, TSource> mergeFunc, Func<TSource, int> keySelector, int bufferCount)
{
return Observable.Create<IList<TSource>>(o =>
{
var buffer = new Dictionary<int, IList<TSource>>();
return source.Subscribe<TSource>(i =>
{
var index = keySelector(i);
if (buffer.ContainsKey(index))
{
buffer[index].Add(i);
}
else
{
buffer.Add(index, new List<TSource>(){i});
}
if (buffer.Count==bufferCount)
{
o.OnNext(mergeFunc(buffer[index]));
buffer.Remove(index);
}
});
});
}

这里的任何帮助都会很好。找不到我想要的一些类,语法的其他方面也不同。是否有任何资源或示例显示 C++ 中的工作方式。大概可以从这些推断出来。

这是问题的原始帖子。

http://social.msdn.microsoft.com/Forums/en-US/58a25f70-a7b8-498b-ad7a-b57f3e1152da/rxcpp?forum=rx

我之前也试过在这里问过,但是没有回应。希望这会更有成果,现在我有更多关于我正在努力实现的目标的信息。

谢谢。

最佳答案

顶级命名空间是 rxcpp,而不是 System。要获得可观察性,您需要:

#include "cpprx/rx.hpp"
using namespace rxcpp;

关于c++ - C++ 中的 RxCpp 响应式扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21394947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com