Commit 6fb0dd04 authored by Dominik Charousset's avatar Dominik Charousset

initialize reference members using non-static member initialization

parent d39fdefc
...@@ -39,11 +39,11 @@ class event_testee : public sb_actor<event_testee> { ...@@ -39,11 +39,11 @@ class event_testee : public sb_actor<event_testee> {
behavior wait4float; behavior wait4float;
behavior wait4int; behavior wait4int;
behavior& init_state; behavior& init_state = wait4int;
public: public:
event_testee() : init_state(wait4int) { event_testee() {
wait4string = ( wait4string = (
on<std::string>() >> [=]() { on<std::string>() >> [=]() {
become(wait4int); become(wait4int);
...@@ -95,13 +95,13 @@ actor_ptr spawn_event_testee2() { ...@@ -95,13 +95,13 @@ actor_ptr spawn_event_testee2() {
struct chopstick : public sb_actor<chopstick> { struct chopstick : public sb_actor<chopstick> {
behavior taken_by(actor_ptr hakker) { behavior taken_by(actor_ptr whom) {
return ( return (
on<atom("take")>() >> [=]() { on<atom("take")>() >> [=]() {
reply(atom("busy")); reply(atom("busy"));
}, },
on(atom("put"), hakker) >> [=]() { on(atom("put"), whom) >> [=]() {
become(init_state); become(available);
}, },
on(atom("break")) >> [=]() { on(atom("break")) >> [=]() {
quit(); quit();
...@@ -109,18 +109,18 @@ struct chopstick : public sb_actor<chopstick> { ...@@ -109,18 +109,18 @@ struct chopstick : public sb_actor<chopstick> {
); );
} }
behavior init_state; behavior available;
behavior& init_state = available;
chopstick() { chopstick() {
init_state = ( available = (
on(atom("take"), arg_match) >> [=](actor_ptr hakker) { on(atom("take"), arg_match) >> [=](actor_ptr whom) {
become(taken_by(hakker)); become(taken_by(whom));
reply(atom("taken")); reply(atom("taken"));
}, },
on(atom("break")) >> [=]() { on(atom("break")) >> [=]() {
quit(); quit();
},
others() >> [=]() {
} }
); );
} }
...@@ -251,11 +251,12 @@ class fixed_stack : public sb_actor<fixed_stack> { ...@@ -251,11 +251,12 @@ class fixed_stack : public sb_actor<fixed_stack> {
behavior full; behavior full;
behavior filled; behavior filled;
behavior empty; behavior empty;
behavior& init_state;
behavior& init_state = empty;
public: public:
fixed_stack(size_t max) : max_size(max), init_state(empty) { fixed_stack(size_t max) : max_size(max) {
full = ( full = (
on(atom("push"), arg_match) >> [=](int) { }, on(atom("push"), arg_match) >> [=](int) { },
......
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