Commit fd14095d authored by Dominik Charousset's avatar Dominik Charousset

Fix static assertion

parent 890918e5
...@@ -18,6 +18,8 @@ ...@@ -18,6 +18,8 @@
#pragma once #pragma once
#include <vector>
#include "caf/default_downstream_manager.hpp" #include "caf/default_downstream_manager.hpp"
#include "caf/detail/stream_stage_driver_impl.hpp" #include "caf/detail/stream_stage_driver_impl.hpp"
#include "caf/detail/stream_stage_impl.hpp" #include "caf/detail/stream_stage_impl.hpp"
...@@ -74,10 +76,14 @@ attach_stream_stage(scheduled_actor* self, const stream<In>& in, ...@@ -74,10 +76,14 @@ attach_stream_stage(scheduled_actor* self, const stream<In>& in,
void(state_type&), void(state_type&),
typename detail::get_callable_trait<Init>::fun_sig>::value, typename detail::get_callable_trait<Init>::fun_sig>::value,
"Expected signature `void (State&)` for init function"); "Expected signature `void (State&)` for init function");
static_assert(std::is_same< using consume_one = void(state_type&, downstream<output_type>&, In);
void(state_type&, downstream<output_type>&, In), using consume_all = void(state_type&, downstream<output_type>&,
typename detail::get_callable_trait<Fun>::fun_sig>::value, std::vector<In>&);
using fun_sig = typename detail::get_callable_trait<Fun>::fun_sig;
static_assert(std::is_same<fun_sig, consume_one>::value
|| std::is_same<fun_sig, consume_all>::value,
"Expected signature `void (State&, downstream<Out>&, In)` " "Expected signature `void (State&, downstream<Out>&, In)` "
"or `void (State&, downstream<Out>&, std::vector<In>&)` "
"for consume function"); "for consume function");
using driver = detail::stream_stage_driver_impl< using driver = detail::stream_stage_driver_impl<
typename Trait::input, DownstreamManager, Fun, Finalize>; typename Trait::input, DownstreamManager, Fun, Finalize>;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment