1010#pragma once
1111
1212#include " react/detail/defs.h"
13- #include " react/api.h"
14- #include " react/group.h"
15- #include " react/common/ptrcache.h"
1613
1714#include < memory>
1815#include < type_traits>
1916#include < utility>
2017
21- #include " react/detail/event_nodes.h"
18+ #include " react/api.h"
19+ #include " react/group.h"
2220
21+ #include " react/detail/event_nodes.h"
2322
23+ #include " react/common/ptrcache.h"
2424
2525/* ****************************************/ REACT_BEGIN /* ****************************************/
2626
@@ -136,12 +136,12 @@ class EventSource : public Event<E>
136136 void Emit (E&& value)
137137 { EmitValue (std::move (value)); }
138138
139- template <typename T = E, typename = std::enable_if_t <std::is_same_v<T,Token>>::type >
139+ template <typename T = E, typename = std::enable_if_t <std::is_same_v<T, Token>>>
140140 void Emit ()
141141 { EmitValue (Token::value); }
142142
143143 EventSource& operator <<(const E& value)
144- { EmitValue (e ); return *this ; }
144+ { EmitValue (value ); return *this ; }
145145
146146 EventSource& operator <<(E&& value)
147147 { EmitValue (std::move (value)); return *this ; }
@@ -311,8 +311,8 @@ auto Merge(const Event<U1>& dep1, const Event<Us>& ... deps) -> decltype(auto)
311311template <typename F, typename E>
312312auto Filter (const Group& group, F&& pred, const Event<E>& dep) -> Event<E>
313313{
314- auto filterFunc = [capturedPred = std::forward<F>(pred)] (const EventValueList<E>& evts , EventValueSink<E> out)
315- { std::copy_if (evts .begin (), evts .end (), out, capturedPred); };
314+ auto filterFunc = [capturedPred = std::forward<F>(pred)] (const EventValueList<E>& events , EventValueSink<E> out)
315+ { std::copy_if (events .begin (), events .end (), out, capturedPred); };
316316
317317 return Event<E>(group, std::move (filterFunc), dep);
318318}
@@ -324,19 +324,19 @@ auto Filter(F&& pred, const Event<E>& dep) -> Event<E>
324324template <typename F, typename E, typename ... Ts>
325325auto Filter (const Group& group, F&& pred, const Event<E>& dep, const State<Ts>& ... states) -> Event<E>
326326{
327- auto filterFunc = [capturedPred = std::forward<F>(pred)] (const EventValueList<E>& evts, EventValueSink<E> out, const Us & ... values)
327+ auto filterFunc = [capturedPred = std::forward<F>(pred)] (const EventValueList<E>& evts, EventValueSink<E> out, const Ts & ... values)
328328 {
329329 for (const auto & v : evts)
330330 if (capturedPred (v, values ...))
331331 *out++ = v;
332332 };
333333
334- return Event<E>(group, std::move (filterFunc), dep, State ...);
334+ return Event<E>(group, std::move (filterFunc), dep, states ...);
335335}
336336
337337template <typename F, typename E, typename ... Ts>
338338auto Filter (F&& pred, const Event<E>& dep, const State<Ts>& ... states) -> Event<E>
339- { return Filter (dep.GetGroup (), std::forward<F>(pred), dep); }
339+ { return Filter (dep.GetGroup (), std::forward<F>(pred), dep, states ... ); }
340340
341341// /////////////////////////////////////////////////////////////////////////////////////////////////
342342// / Transform
@@ -357,10 +357,10 @@ auto Transform(F&& op, const Event<T>& dep) -> Event<E>
357357template <typename E, typename F, typename T, typename ... Us>
358358auto Transform (const Group& group, F&& op, const Event<T>& dep, const State<Us>& ... states) -> Event<E>
359359{
360- auto transformFunc = [capturedOp = std::forward<F>(pred )] (const EventValueList<T>& evts, EventValueSink<E> out, const Us& ... values)
360+ auto transformFunc = [capturedOp = std::forward<F>(op )] (const EventValueList<T>& evts, EventValueSink<E> out, const Us& ... values)
361361 {
362362 for (const auto & v : evts)
363- *out++ = capturedPred (v, values ...);
363+ *out++ = capturedOp (v, values ...);
364364 };
365365
366366 return Event<E>(group, std::move (transformFunc), dep, states ...);
@@ -390,23 +390,6 @@ template <typename U1, typename ... Us>
390390auto Join (const Event<U1 >& dep1, const Event<Us>& ... deps) -> Event<std::tuple<U1, Us ...>>
391391 { return Join (dep1.GetGroup (), dep1, deps ...); }
392392
393- // /////////////////////////////////////////////////////////////////////////////////////////////////
394- // / Token
395- // /////////////////////////////////////////////////////////////////////////////////////////////////
396- enum class Token { value };
397-
398- /* struct Tokenizer
399- {
400- template <typename T>
401- Token operator()(const T&) const { return Token::value; }
402- };
403-
404- template <typename T>
405- auto Tokenize(T&& source) -> decltype(auto)
406- {
407- return Transform(source, Tokenizer{ });
408- }*/
409-
410393/* *****************************************/ REACT_END /* *****************************************/
411394
412395/* **************************************/ REACT_IMPL_BEGIN /* *************************************/
0 commit comments