bool try_take_( callable & ca) { if ( empty_() ) return false; callable tmp( queue_.top().ca); queue_.pop(); ca.swap( tmp); return ! ca.empty(); }
void swap( value_type & other) { ca.swap( other.ca); std::swap( attr, other.attr); }