How can I wait for two or more things (with different types) at the same time? Like in an event loop:
while(true) {
ppl::task<Letter> msg1 = WaitForLetter(); //one letter a month
ppl::task<SMS> msg2 = WaitForSMS(); //one SMS an hour
//wait_any. How to do it for tasks of different types?
}