@@ -195,7 +195,7 @@ auto MakeContinuation(TransactionFlagsT flags, const Signal<D,S>& trigger, FIn&&
195195 -> Continuation<D,DOut>
196196{
197197 static_assert (DOut::is_concurrent,
198- " MakeContinuation requires support for concurrent input to target domain ." );
198+ " MakeContinuation: Target domain does not support concurrent input ." );
199199
200200 using REACT_IMPL ::SignalContinuationNode;
201201 using F = typename std::decay<FIn>::type;
@@ -232,7 +232,7 @@ auto MakeContinuation(TransactionFlagsT flags, const Events<D,E>& trigger, FIn&&
232232 -> Continuation<D,DOut>
233233{
234234 static_assert (DOut::is_concurrent,
235- " MakeContinuation requires support for concurrent input to target domain ." );
235+ " MakeContinuation: Target domain does not support concurrent input ." );
236236
237237 using REACT_IMPL ::EventContinuationNode;
238238 using REACT_IMPL ::AddContinuationRangeWrapper;
@@ -245,9 +245,16 @@ auto MakeContinuation(TransactionFlagsT flags, const Events<D,E>& trigger, FIn&&
245245 typename std::conditional<
246246 IsCallableWith<F,void , EventRange<E>>::value,
247247 F,
248- AddContinuationRangeWrapper<E, F>
248+ typename std::conditional<
249+ IsCallableWith<F, void , E>::value,
250+ AddContinuationRangeWrapper<E, F>,
251+ void
252+ >::type
249253 >::type;
250254
255+ static_assert (! std::is_same<WrapperT,void >::value,
256+ " MakeContinuation: Passed function does not match any of the supported signatures." );
257+
251258 return Continuation<D,DOut>(
252259 std::make_shared<EventContinuationNode<D,DOut,E,WrapperT>>(
253260 flags, GetNodePtr (trigger), std::forward<FIn>(func)));
@@ -282,7 +289,7 @@ auto MakeContinuation(TransactionFlagsT flags, const Events<D,E>& trigger,
282289 -> Continuation<D,DOut>
283290{
284291 static_assert (DOut::is_concurrent,
285- " MakeContinuation requires support for concurrent input to target domain ." );
292+ " MakeContinuation: Target domain does not support concurrent input ." );
286293
287294 using REACT_IMPL ::SyncedContinuationNode;
288295 using REACT_IMPL ::AddContinuationRangeWrapper;
@@ -295,9 +302,16 @@ auto MakeContinuation(TransactionFlagsT flags, const Events<D,E>& trigger,
295302 typename std::conditional<
296303 IsCallableWith<F, void , EventRange<E>, TDepValues ...>::value,
297304 F,
298- AddContinuationRangeWrapper<E, F, TDepValues ...>
305+ typename std::conditional<
306+ IsCallableWith<F, void , E, TDepValues ...>::value,
307+ AddContinuationRangeWrapper<E, F, TDepValues ...>,
308+ void
309+ >::type
299310 >::type;
300311
312+ static_assert (! std::is_same<WrapperT,void >::value,
313+ " MakeContinuation: Passed function does not match any of the supported signatures." );
314+
301315 struct NodeBuilder_
302316 {
303317 NodeBuilder_ (TransactionFlagsT flags, const Events<D,E>& trigger, FIn&& func) :
@@ -364,7 +378,8 @@ void DoTransaction(TransactionFlagsT flags, F&& func)
364378template <typename D, typename F>
365379void AsyncTransaction (F&& func)
366380{
367- static_assert (D::is_concurrent, " AsyncTransaction requires concurrent domain." );
381+ static_assert (D::is_concurrent,
382+ " AsyncTransaction: Domain does not support concurrent input." );
368383
369384 using REACT_IMPL ::DomainSpecificInputManager;
370385 DomainSpecificInputManager<D>::Instance ()
@@ -374,7 +389,8 @@ void AsyncTransaction(F&& func)
374389template <typename D, typename F>
375390void AsyncTransaction (TransactionFlagsT flags, F&& func)
376391{
377- static_assert (D::is_concurrent, " AsyncTransaction requires concurrent domain." );
392+ static_assert (D::is_concurrent,
393+ " AsyncTransaction: Domain does not support concurrent input." );
378394
379395 using REACT_IMPL ::DomainSpecificInputManager;
380396 DomainSpecificInputManager<D>::Instance ()
@@ -384,7 +400,8 @@ void AsyncTransaction(TransactionFlagsT flags, F&& func)
384400template <typename D, typename F>
385401void AsyncTransaction (TransactionStatus& status, F&& func)
386402{
387- static_assert (D::is_concurrent, " AsyncTransaction requires concurrent domain." );
403+ static_assert (D::is_concurrent,
404+ " AsyncTransaction: Domain does not support concurrent input." );
388405
389406 using REACT_IMPL ::DomainSpecificInputManager;
390407
@@ -395,7 +412,8 @@ void AsyncTransaction(TransactionStatus& status, F&& func)
395412template <typename D, typename F>
396413void AsyncTransaction (TransactionFlagsT flags, TransactionStatus& status, F&& func)
397414{
398- static_assert (D::is_concurrent, " AsyncTransaction requires concurrent domain." );
415+ static_assert (D::is_concurrent,
416+ " AsyncTransaction: Domain does not support concurrent input." );
399417
400418 using REACT_IMPL ::DomainSpecificInputManager;
401419 DomainSpecificInputManager<D>::Instance ()
0 commit comments