cop<KeyT,DataT,CompareT,AllocT>& cop<KeyT,DataT,CompareT,AllocT> ::copy_if(const property<value_type>& hasProperty, const cop<KeyT,DataT,CompareT,AllocT>& src) { if(this == &src) return keep_if(hasProperty); // otherwise clear(); const_iterator it = src.begin(); while(it != src.end()) { if ( hasProperty(*it) ) insert(*it); it++; } return *this; }