@@ -327,16 +327,17 @@ namespace delegate
327
327
{
328
328
if (FP == kind)
329
329
{
330
- return fn (std::forward<P...>(args...));
330
+ if (fn) return fn (std::forward<P...>(args...));
331
331
}
332
332
else if (FPA == kind)
333
333
{
334
- return fnA (obj, std::forward<P...>(args...));
334
+ if (fnA) return fnA (obj, std::forward<P...>(args...));
335
335
}
336
336
else
337
337
{
338
- return functional (std::forward<P...>(args...));
338
+ if (functional) return functional (std::forward<P...>(args...));
339
339
}
340
+ return R ();
340
341
}
341
342
342
343
protected:
@@ -541,12 +542,13 @@ namespace delegate
541
542
{
542
543
if (FP == kind)
543
544
{
544
- return fn (std::forward<P...>(args...));
545
+ if (fn) return fn (std::forward<P...>(args...));
545
546
}
546
547
else
547
548
{
548
- return fnA (obj, std::forward<P...>(args...));
549
+ if (fnA) return fnA (obj, std::forward<P...>(args...));
549
550
}
551
+ return R ();
550
552
}
551
553
552
554
protected:
@@ -748,12 +750,13 @@ namespace delegate
748
750
{
749
751
if (FP == kind)
750
752
{
751
- return fn (std::forward<P...>(args...));
753
+ if (fn) return fn (std::forward<P...>(args...));
752
754
}
753
755
else
754
756
{
755
- return functional (std::forward<P...>(args...));
757
+ if (functional) return functional (std::forward<P...>(args...));
756
758
}
759
+ return R ();
757
760
}
758
761
759
762
protected:
@@ -845,7 +848,8 @@ namespace delegate
845
848
846
849
inline R IRAM_ATTR operator ()(P... args) const __attribute__((always_inline))
847
850
{
848
- return fn (std::forward<P...>(args...));
851
+ if (fn) return fn (std::forward<P...>(args...));
852
+ return R ();
849
853
}
850
854
851
855
protected:
@@ -1127,16 +1131,17 @@ namespace delegate
1127
1131
{
1128
1132
if (FP == kind)
1129
1133
{
1130
- return fn ();
1134
+ if (fn) return fn ();
1131
1135
}
1132
1136
else if (FPA == kind)
1133
1137
{
1134
- return fnA (obj);
1138
+ if (fnA) return fnA (obj);
1135
1139
}
1136
1140
else
1137
1141
{
1138
- return functional ();
1142
+ if (functional) return functional ();
1139
1143
}
1144
+ return R ();
1140
1145
}
1141
1146
1142
1147
protected:
@@ -1340,12 +1345,13 @@ namespace delegate
1340
1345
{
1341
1346
if (FP == kind)
1342
1347
{
1343
- return fn ();
1348
+ if (fn) return fn ();
1344
1349
}
1345
1350
else
1346
1351
{
1347
- return fnA (obj);
1352
+ if (fnA) return fnA (obj);
1348
1353
}
1354
+ return R ();
1349
1355
}
1350
1356
1351
1357
protected:
@@ -1547,12 +1553,13 @@ namespace delegate
1547
1553
{
1548
1554
if (FP == kind)
1549
1555
{
1550
- return fn ();
1556
+ if (fn) return fn ();
1551
1557
}
1552
1558
else
1553
1559
{
1554
- return functional ();
1560
+ if (functional) return functional ();
1555
1561
}
1562
+ return R ();
1556
1563
}
1557
1564
1558
1565
protected:
@@ -1644,7 +1651,8 @@ namespace delegate
1644
1651
1645
1652
inline R IRAM_ATTR operator ()() const __attribute__((always_inline))
1646
1653
{
1647
- return fn ();
1654
+ if (fn) return fn ();
1655
+ return R ();
1648
1656
}
1649
1657
1650
1658
protected:
0 commit comments