#pragma once #include #include // forall(otype T) { struct channel { int * buffer; int front; int back; int count; int size; mutex_lock lock; condition_variable prods; condition_variable cons; }; void ?{}( channel & this, int size ); void ^?{}( channel & this ); void put( channel & this, int elem ); int take( channel & this ); // }