1414// //////////////////////////////////////////////////////////////////////////////////////
1515namespace react {
1616
17+ template <typename D, typename S>
18+ class SignalNode ;
19+
20+ template <typename D, typename S>
21+ class VarNode ;
22+
1723// //////////////////////////////////////////////////////////////////////////////////////
1824// / RSignal
1925// //////////////////////////////////////////////////////////////////////////////////////
@@ -52,7 +58,7 @@ class RSignal : public Reactive<SignalNode<D,S>>
5258
5359 S operator ()(void ) const
5460 {
55- return (*ptr_) ();
61+ return Value ();
5662 }
5763};
5864
@@ -167,7 +173,7 @@ inline auto MakeSignal(TFunc func, const RSignal<D,TArgs>& ... args)
167173// //////////////////////////////////////////////////////////////////////////////////////
168174// / Unary arithmetic operators
169175// //////////////////////////////////////////////////////////////////////////////////////
170- #define DECLARE_ARITHMETIC_OP1 (op ) \
176+ #define DECLARE_OP (op ) \
171177template \
172178< \
173179 typename D, \
@@ -181,15 +187,15 @@ inline auto operator ## op(const RSignal<D,TVal>& arg) \
181187 arg.GetPtr (), [] (TVal a) { return op a; }, false )); \
182188}
183189
184- DECLARE_ARITHMETIC_OP1 (+);
185- DECLARE_ARITHMETIC_OP1 (-);
190+ DECLARE_OP (+);
191+ DECLARE_OP (-);
186192
187- #undef DECLARE_ARITHMETIC_OP1
193+ #undef DECLARE_OP
188194
189195// //////////////////////////////////////////////////////////////////////////////////////
190196// / Binary arithmetic operators
191197// //////////////////////////////////////////////////////////////////////////////////////
192- #define DECLARE_ARITHMETIC_OP2 (op ) \
198+ #define DECLARE_OP (op ) \
193199template \
194200< \
195201 typename D, \
@@ -255,18 +261,18 @@ inline auto operator ## op(const TLeftVal& lhs, \
255261 rhs.GetPtr (), [=] (TRightVal a) { return lhs op a; }, false )); \
256262}
257263
258- DECLARE_ARITHMETIC_OP2 (+);
259- DECLARE_ARITHMETIC_OP2 (-);
260- DECLARE_ARITHMETIC_OP2 (*);
261- DECLARE_ARITHMETIC_OP2 (/);
262- DECLARE_ARITHMETIC_OP2 (%);
264+ DECLARE_OP (+);
265+ DECLARE_OP (-);
266+ DECLARE_OP (*);
267+ DECLARE_OP (/);
268+ DECLARE_OP (%);
263269
264- #undef DECLARE_ARITHMETIC_OP2
270+ #undef DECLARE_OP
265271
266272// //////////////////////////////////////////////////////////////////////////////////////
267273// / Comparison operators
268274// //////////////////////////////////////////////////////////////////////////////////////
269- #define DECLARE_COMP_OP (op ) \
275+ #define DECLARE_OP (op ) \
270276template \
271277< \
272278 typename D, \
@@ -296,19 +302,19 @@ inline auto operator ## op(const RSignal<D,TLeftVal>& lhs, const TRightVal& rhs)
296302 lhs.GetPtr (), [=] (TLeftVal a) { return a op rhs; }, false )); \
297303}
298304
299- DECLARE_COMP_OP (==);
300- DECLARE_COMP_OP (!=);
301- DECLARE_COMP_OP (<);
302- DECLARE_COMP_OP (<=);
303- DECLARE_COMP_OP (>);
304- DECLARE_COMP_OP (>=);
305+ DECLARE_OP (==);
306+ DECLARE_OP (!=);
307+ DECLARE_OP (<);
308+ DECLARE_OP (<=);
309+ DECLARE_OP (>);
310+ DECLARE_OP (>=);
305311
306- #undef DECLARE_COMP_OP
312+ #undef DECLARE_OP
307313
308314// //////////////////////////////////////////////////////////////////////////////////////
309315// / Unary logical operators
310316// //////////////////////////////////////////////////////////////////////////////////////
311- #define DECLARE_LOGICAL_OP1 (op ) \
317+ #define DECLARE_OP (op ) \
312318template \
313319< \
314320 typename D, \
@@ -322,14 +328,14 @@ inline auto operator ## op(const RSignal<D,TVal>& arg) \
322328 arg.GetPtr (), [] (TVal a) { return op a; }, false )); \
323329}
324330
325- DECLARE_LOGICAL_OP1 (!);
331+ DECLARE_OP (!);
326332
327- #undef DECLARE_LOGICAL_OP1
333+ #undef DECLARE_OP
328334
329335// //////////////////////////////////////////////////////////////////////////////////////
330336// / Binary logical operators
331337// //////////////////////////////////////////////////////////////////////////////////////
332- #define DECLARE_LOGICAL_OP2 (op ) \
338+ #define DECLARE_OP (op ) \
333339template \
334340< \
335341 typename D, \
@@ -359,10 +365,10 @@ inline auto operator ## op(const RSignal<D,TLeftVal>& lhs, const TRightVal& rhs)
359365 lhs.GetPtr (), [=] (TLeftVal a) { return a op rhs; }, false )); \
360366}
361367
362- DECLARE_LOGICAL_OP2 (&&);
363- DECLARE_LOGICAL_OP2 (||);
368+ DECLARE_OP (&&);
369+ DECLARE_OP (||);
364370
365- #undef DECLARE_LOGICAL_OP2
371+ #undef DECLARE_OP
366372
367373// //////////////////////////////////////////////////////////////////////////////////////
368374// / InputPack - Wraps several nodes in a tuple. Create with comma operator.
0 commit comments