Commit b0c1c786 authored by ufownl's avatar ufownl

Fix compilation error on GCC4.8

parent f64f1ea2
......@@ -56,20 +56,20 @@ CAF_TEST(test_serial_reply) {
auto c3 = self->spawn<linked>(mirror_behavior);
auto c4 = self->spawn<linked>(mirror_behavior);
self->become (
[=](hi_atom) {
[=](hi_atom) mutable {
auto rp = self->make_response_promise();
CAF_MESSAGE("received 'hi there'");
self->request(c0, sub0_atom::value).then(
[=](sub0_atom) {
[=](sub0_atom) mutable {
CAF_MESSAGE("received 'sub0'");
self->request(c1, sub1_atom::value).then(
[=](sub1_atom) {
[=](sub1_atom) mutable {
CAF_MESSAGE("received 'sub1'");
self->request(c2, sub2_atom::value).then(
[=](sub2_atom) {
[=](sub2_atom) mutable {
CAF_MESSAGE("received 'sub2'");
self->request(c3, sub3_atom::value).then(
[=](sub3_atom) {
[=](sub3_atom) mutable {
CAF_MESSAGE("received 'sub3'");
self->request(c4, sub4_atom::value).then(
[=](sub4_atom) mutable {
......
......@@ -149,6 +149,23 @@ public:
virtual mpi_output_t<Ys...> operator()(mpi_input_t<Xs>...) = 0;
};
template <class... Ts>
struct abstract_composable_state_mixin_helper;
template <class T, class... Ts>
struct abstract_composable_state_mixin_helper<T, Ts...>
: public abstract_composable_state_mixin<T>,
public abstract_composable_state_mixin_helper<Ts...> {
using abstract_composable_state_mixin<T>::operator();
using abstract_composable_state_mixin_helper<Ts...>::operator();
};
template <class T>
struct abstract_composable_state_mixin_helper<T>
: public abstract_composable_state_mixin<T> {
using abstract_composable_state_mixin<T>::operator();
};
/// Marker type that allows CAF to spawn actors from composable states.
class abstract_composable_state {
public:
......@@ -188,8 +205,9 @@ template <class TypedActor>
class composable_state;
template <class... Clauses>
class composable_state<typed_actor<Clauses...>> : virtual public abstract_composable_state,
public abstract_composable_state_mixin<Clauses>... {
class composable_state<typed_actor<Clauses...>>
: virtual public abstract_composable_state,
public abstract_composable_state_mixin_helper<Clauses...> {
public:
using signatures = detail::type_list<Clauses...>;
......
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