У меня есть консольное приложение Win32, и я импортировал ссылки на Rx. Intellisense позволяет мне это сделать ....RxCpp Reactive Extensions в C++
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/Предмет и IObserver/наблюдателя. Однако нет IObservable. Я немного встревожен отсутствием документации для Rx с Cpp. У меня отсутствуют какие-либо очевидные ресурсы?
Я пробовал каналы Channel9, Google, Stackoverflow и Facebook. Это рабочий код C#, который я создал, я бы хотел, чтобы это работало с C++. Эта функция объединяет все данные из разных источников наблюдения и выводит их в виде списка.
Итак, матрица появляется из исходного кода, вторая матрица появляется из второго источника. Они сопоставляются идентификатором и перемещаются вперед вместе в виде списка.
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
Я попытался спросить здесь раньше, но не было никакого ответа. Надеясь, что это будет немного более плодотворным, теперь у меня есть больше информации о том, чего я пытаюсь достичь.
спасибо.
Я не понимаю, как вы получили все эти пространства имен ... как именно вы добавить ссылки на Rx? Я использовал nuget и добавил пакет rxcpp. –